2011-08-07 60 views

回答

19

通過使用List屬性。

ListBox1.AddItem "foo" 
ListBox1.List(ListBox1.ListCount - 1, 1) = "bar" 
+0

非常感謝。現在,如果我想獲得這個價值,我該怎麼做?我的意思是要獲得第一列中的值我做ListBox1.Value ... bot的第二列? –

+1

@Andrei Ion以同樣的方式。 'List'是一個屬性,兩種方式都有效。 – GSerg

+0

是的,我猜想它必須是相同的方式,但我不會知道所選項目的行...我知道列是1,但行?我猜ListBox1.ListCount-1是你添加值時的行......我怎麼知道當選擇一個值時行是什麼?非常感謝! –

-5

選擇歡迎使用屬性

行來源類型=>值列表

代碼:

ListbName.ColumnCount = 2

ListbName.AddItem「值列1;值欄2「

+0

這不會爲第2列添加任何值。AddItem方法將值和可選索引(行索引)作爲參數。 –

+0

@DavidZemens由於rowSource類型是「值列表」分隔的字符串被解釋爲與列相同。上面的Kong代碼將起作用。 –

+0

@krishKM在哪個版本的Excel?使用2010年,'Debug.Print ListBox1.RowSourceType'引發一個「找不到成員」的錯誤。我可以在本地窗口中看到它,但不能在屬性窗格中看到它。 –

2

還有就是要實現它多了一個辦法: -

Private Sub UserForm_Initialize() 
Dim list As Object 
Set list = UserForm1.Controls.Add("Forms.ListBox.1", "hello", True) 
With list 
    .Top = 30 
    .Left = 30 
    .Width = 200 
    .Height = 340 
    .ColumnHeads = True 
    .ColumnCount = 2 
    .ColumnWidths = "100;100" 
    .MultiSelect = fmMultiSelectExtended 
    .RowSource = "Sheet1!C4:D25" 
End With End Sub 

在這裏,我使用的範圍C4:D25作爲列數據的來源。這將導致兩列填充值。

屬性是不言自明的。您可以通過在UserForm中繪製ListBox並使用「屬性窗口(F4)」來使用選項值來探索其他選項。

+0

不完全是答案,而是添加多列列表的更有效的方法。 – FCastro

+0

這隻適用於與Excel結合使用VBA的情況:) –