第一種使用AddItem,程式碼:
Private Sub UserForm_Initialize()
ComboBox1.AddItem "A"
ComboBox1.AddItem "B"
ComboBox1.AddItem "C"
End Sub
上面的程式碼一次向組合框中新增一個專案,共添加了三條專案。
第二種方法使用陣列,程式碼:
ComboBox1.List = Array("A", "B", "C")
事先將要新增的專案放到一個數組中,然後使用組合框的List屬性。
第三種方法使用工作表區域,事先將要新增的專案放到工作表中,例如F1到F3分別寫入A、B、C,然後執行下面的程式碼:
ComboBox1.RowSource = "Sheet1!F1:F3"
上面的程式碼用的是ComboBox的RowSource屬性,值是相應的單元格區域。
下面再來看怎樣向組合框中加入多列專案,這裡只介紹RowSource方法,仍舊是事先將我們要加入的專案放到工作表的相應區域,然後執行下面的程式碼:
ComboBox1.RowSource = "Sheet1!A2:C4"
ComboBox1.ColumnCount = 3 "設定顯示的列數
ComboBox1.ColumnHeads = True "是否包括頭部
ComboBox1.TextColumn = 2"設定顯示值的列號
ComboBox1.BoundColumn = 3"設定預設值的列號
Sheet1的A2:C4是我們的資料區域,ColumnCount屬性表示要顯示幾列,這裡設定成3列,ColumnHeads表示是否包括頭部,True代表包括頭部(注意這裡A2:C4的範圍並沒有把頭部包括進去),可以自己看下效果。我們這裡有3列,但是組合框中只能顯示一個值,那顯示哪個值呢?用TextColumn屬性來表示,2表示在組合框中顯示的是第2列的值,例如你選擇的是第一行資料,那在組合框中顯示的值就是12。組合框ComboBox還有一個Value屬性,同樣的,如果是多列Value到底是指哪一列的值呢?這個就得用到BoundColumn屬性了,3就表示ComboBox1.value就是第三列的值。那問題又來了,如果我們想要呼叫第一列或第二列的值怎麼辦?有辦法,看下面的程式碼:
Private Sub CommandButton2_Click()
MsgBox ComboBox1.List(ComboBox1.ListIndex, 0)
ComboBox1.List(ComboBox1.ListIndex, 0)就表示第1列的值,將0換成1就表示第2列的值,換成2就表示第3列的值,看出來了吧,列標是從0開始而不是從1開始的。
第一種使用AddItem,程式碼:
Private Sub UserForm_Initialize()
ComboBox1.AddItem "A"
ComboBox1.AddItem "B"
ComboBox1.AddItem "C"
End Sub
上面的程式碼一次向組合框中新增一個專案,共添加了三條專案。
第二種方法使用陣列,程式碼:
Private Sub UserForm_Initialize()
ComboBox1.List = Array("A", "B", "C")
End Sub
事先將要新增的專案放到一個數組中,然後使用組合框的List屬性。
第三種方法使用工作表區域,事先將要新增的專案放到工作表中,例如F1到F3分別寫入A、B、C,然後執行下面的程式碼:
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Sheet1!F1:F3"
End Sub
上面的程式碼用的是ComboBox的RowSource屬性,值是相應的單元格區域。
下面再來看怎樣向組合框中加入多列專案,這裡只介紹RowSource方法,仍舊是事先將我們要加入的專案放到工作表的相應區域,然後執行下面的程式碼:
Private Sub UserForm_Initialize()
ComboBox1.RowSource = "Sheet1!A2:C4"
ComboBox1.ColumnCount = 3 "設定顯示的列數
ComboBox1.ColumnHeads = True "是否包括頭部
ComboBox1.TextColumn = 2"設定顯示值的列號
ComboBox1.BoundColumn = 3"設定預設值的列號
End Sub
Sheet1的A2:C4是我們的資料區域,ColumnCount屬性表示要顯示幾列,這裡設定成3列,ColumnHeads表示是否包括頭部,True代表包括頭部(注意這裡A2:C4的範圍並沒有把頭部包括進去),可以自己看下效果。我們這裡有3列,但是組合框中只能顯示一個值,那顯示哪個值呢?用TextColumn屬性來表示,2表示在組合框中顯示的是第2列的值,例如你選擇的是第一行資料,那在組合框中顯示的值就是12。組合框ComboBox還有一個Value屬性,同樣的,如果是多列Value到底是指哪一列的值呢?這個就得用到BoundColumn屬性了,3就表示ComboBox1.value就是第三列的值。那問題又來了,如果我們想要呼叫第一列或第二列的值怎麼辦?有辦法,看下面的程式碼:
Private Sub CommandButton2_Click()
MsgBox ComboBox1.List(ComboBox1.ListIndex, 0)
End Sub
ComboBox1.List(ComboBox1.ListIndex, 0)就表示第1列的值,將0換成1就表示第2列的值,換成2就表示第3列的值,看出來了吧,列標是從0開始而不是從1開始的。