2017-10-08 6 views
0

リストボックスの値をExcelに表示するために作成したコードのVBAエラーを修正しようとしています。誰でも助けてくれますか?リストボックスコードのVBAエラー

リストはマルチセレクトシングルであり、アイテムはアイテムの追加を使用して追加されます。項目はフォームに表示されていますが、選択したリスト値はコード実行時にスプレッドシートに表示されません。

フルコード

Private Sub CancelButton_Click() 

Unload Me 

End Sub 

Private Sub ClearButton_Click() 

Call UserForm_Initialize 

End Sub 

Private Sub InitialTermListBox_Click() 

End Sub 


Private Sub OKButton_Click() 
Dim emptyRow As Long 

'Make Summary active 
Summary.Activate 

'Determine emptyRow 
emptyRow = WorksheetFunction.CountA(Range("A:A")) + 1 

'Transfer information 
Cells(emptyRow, 1).Value = SupplierNameTextBox.Value 
Cells(emptyRow, 3).Value = GeneralDescriptionTextBox.Value 
Cells(emptyRow, 5).Value = DepartmentListBox.Value 
Cells(emptyRow, 6).Value = ContractStartDateTextBox.Value 
Cells(emptyRow, 7).Value = InitialTermListBox.Value 
Cells(emptyRow, 8).Value = RenewalTermListBox.Value 
Cells(emptyRow, 9).Value = PaymentTermsListBox.Value 
Cells(emptyRow, 10).Value = SelectionMechanismListBox.Value 
Cells(emptyRow, 11).Value = ValueOfContractTextBox.Value 

Dim lbtext As Variant 
lbtext = BusinessOwnerListBox.Value 
Worksheets("Summary").Cells(emptyRow, 4).Value = lbtext 


If SignedContractCheckBox.Value = True Then Cells(emptyRow, 2).Value =  SignedContractCheckBox.Caption 

End Sub 


Private Sub PaymentTermsListBox_Click() 

End Sub 

Private Sub RenewalTermListBox_Click() 

End Sub 

Private Sub SelectionMechanismListBox_Click() 

End Sub 

Private Sub UserForm_Click() 

End Sub 

Private Sub UserForm_Initialize() 

'Empty SupplierNameTextBox 
SupplierNameTextBox.Value = "" 

'Uncheck SignedContractCheckBox 
SignedContractCheckBox.Value = False 

'Empty GeneralDescriptionTextBox 
GeneralDescriptionTextBox.Value = "" 

'Empty BusinessOwnerListBox 
BusinessOwnerListBox.Clear 

'Fill BusinessOwnerListBox 
With BusinessOwnerListBox 
    .AddItem "" 
    .AddItem "Alison Gillies" 
    .AddItem "Bernard Hunwick" 
    .AddItem "Jon Williams" 
    .AddItem "Laurent Sylvestre" 
    .AddItem "Leeann McCallum" 
    .AddItem "Sue Lowe" 
End With 

'Empty DepartmentListBox 
DepartmentListBox.Clear 

'Fill DepartmentListBox 
With DepartmentListBox 
.AddItem "" 
.AddItem "Buildings" 
.AddItem "Corporate Services" 
.AddItem "ICT" 
.AddItem "People & Culture" 
.AddItem "Transport & Logistics" 
End With 

'Empty ContractStartDateTextBox 
    ContractStartDateTextBox.Value = "" 

'Empty InitialTermListBox 
    InitialTermListBox.Clear 

'Fill InitialTermListBox 
With InitialTermListBox 
.AddItem "" 
.AddItem "6" 
.AddItem "12" 
.AddItem "18" 
.AddItem "24" 
.AddItem "36" 
End With 

'Empty RenewalTermListBox 
    RenewalTermListBox.Clear 

'Fill RenewalTermListBox 
    With RenewalTermListBox 
.AddItem "" 
.AddItem "6" 
.AddItem "12" 
.AddItem "18" 
.AddItem "24" 
.AddItem "36" 
End With 

'Empty PaymentTermsListBox 
PaymentTermsListBox.Clear 

'Fill PaymentTermsListBox 
With PaymentTermsListBox 
.AddItem "" 
.AddItem "7 days" 
.AddItem "30 days" 
.AddItem "20th month" 
.AddItem "Quarterly" 
.AddItem "Annual" 
End With 

'Empty SelectionMechanismListBox 
SelectionMechanismListBox.Clear 

'Fill SelectionMechanismListBox 
With SelectionMechanismListBox 
.AddItem "" 
.AddItem "RolledContract" 
.AddItem "RFP" 
.AddItem "RFQ" 
.AddItem "3 Quotes" 
.AddItem "2 Quote" 
.AddItem "Business Selection" 
End With 

'Empty ValueOfContractTextBox 
    ValueOfContractTextBox.Value = "" 


'Set Focus on SupplierNameTextBox 
    SupplierNameTextBox.SetFocus 


End Sub 
+0

はおそらく '.ControlFormat'を取り除きますか? – YowE3K

+0

'lbtext = .List(.Value)'これは文字列変数の値を設定することですか? –

+0

「List is multi select single」というステートメントで混乱します。複数の選択、または1つの選択ですか? (しかし、私は非常にまれにExcelでリストボックスを使用することはほとんどないので、おそらく "マルチセレクトシングル"は本当に問題で、私が何を話しているのか分かりません) – YowE3K

答えて

0

ワークシートにフォームから直接書き込むに

を(コードは、フォームのコードモジュールであると仮定):

Worksheets("some_sheet_name").Range("K9").Value = BusinessOwnerListBox.Value 

選択した値を変数に代入してからthに書き込むには電子ワークシート

Dim lbtext As String 
'String variables can't store "Null" so need to check 
If IsNull(BusinessOwnerListBox.Value) Then 
    MsgBox "Select something!!" 
    Exit Sub 
End If 
lbtext = BusinessOwnerListBox.Value 
Worksheets("some_sheet_name").Range("K9").Value = lbtext 

または

Dim lbtext As Variant 
lbtext = BusinessOwnerListBox.Value 
Worksheets("some_sheet_name").Range("K9").Value = lbtext