回覆列表
  • 1 # 使用者6354188383803

    第一種使用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開始的。

  • 中秋節和大豐收的關聯?
  • 涼州詞,王之渙前兩句寫了作者所見的祖國山川的?