Excel中用組合框控制項與工作表進行數據關聯的四個方法
(2009-05-04 15:02:45)
轉載
標籤: excel與vba | 分類: Excel與VBA |
在Excel中,怎樣將工作表中的數據作為下拉列表控制項(如Combobox控制項)中的數據源呢?實現的方法可以有以下三種:
第一種方法:
比如,在名為「城市」的工作表的A1至A11單元格內輸入了部分城市的名稱,我想將這些數據與組合框控制項關聯在一起。你只需將組合框控制項的「RowSource」屬性的屬性值設置為「城市!A1:A11」即可。
第二種方法:
還如上例,在名為「城市」的工作表的A1至A11單元格內輸入了部分城市的名稱,我想將這些數據與組合框控制項關聯在一起。你可以先在Excel中點擊「插入」--「名稱」--「定義」,在「在當前工作簿中的名稱」中填寫一個你認為合適的名稱(如MC),在「引用位置」中填寫「城市!A1:A11」,然後再將組合框控制項的「RowSource」屬性的屬性值設置為你給引用區域起的名稱,如「MC」即可。
第三種方法:
一、先建一個數據表,在其中一個工作表的第一列中輸入原始數據,並將這個工作表改名為「城市」
二、利用Visual Basic編輯器製作用戶窗口,將窗口名命名為「UserForm」,在窗口中插入一個組合框控制項(命名為Combobox1)。
三、雙擊該窗口,寫入如下代碼:
Private Sub UserForm_Activate() //當用戶窗口被激活時運行這段程序Sheets("城市").Select //打開「城市工作表」 Dim i As Integer //定義變數i為整型
i = 1 //給i賦初值為1 Do While i < 65535 //當i小於65535(一個工作表的最大行數)時執行環循 If Cells(i, 1) = "" Then //當Cells(i,1)單元格等於空時退出環循Exit DoElse //當Cells(i,1)單元格不為空時ComboBox1.AddItem Cells(i, 1) //將Cells(i,1)的值添加到組合框控制項中End Ifi = i + 1Loop
End Sub
程序運行後可以看到組合框控制項的下拉列表中出現了「城市」工作表第一列的所有數據。如圖:
第四種方法
還是以上面的工作表為例,將以下代碼寫在工作表被激活的事件中
Private Sub Worksheet_Activate()Dim LB As Integer "定義一個名為LB的變數LB = Sheets("城市").[a65535].End(xlUp).Row "將名為「城市」的工作表的A列最後一個數據行的
" 行列標賦值給LB變數(即A列中數據項的項數)
For i = 1 To LBComboBox1.AddItem Sheets("城市").Cells(i, 1).Value "將數據項逐一添加到組合框控制項中NextEnd Sub
在以上的四個方法中,具體使用哪一種,就要看具體情況了。
推薦閱讀:
※我發現很多人白天不是很認真把自己的工作儘力做好,而是加班?、為什麼人就有這些思想呢?
※長期來看升值的崗位是什麼?行研、行研銷售、機構銷售、承攬、承做?
※專業能力強智商高,在工作中很受老闆喜歡的星座
※湖北省公安機關調解治安案件工作規範-找法網(findlaw.cn)
※在測繪局工作是怎樣一番體驗?