用VBA向列表框(ComboBox或ListBox)中填加数据
生活随笔
收集整理的這篇文章主要介紹了
用VBA向列表框(ComboBox或ListBox)中填加数据
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
用VBA向列表框(ComboBox或ListBox)中填加數據
向列表框中填加數據的方法很多,下面根據實例介紹3種最常用到的方法:圖1
圖2
如圖1所示的下拉列表框(組合框),圖2為其數據源,圖2所有在工作表表名為:設置表
無論哪種方法我們都首先要知道最后這個數據所在的行數。如圖2的第4行。 復制內容到剪貼板
代碼:
? ? Dim l As Long? ?? ?? ?'表示行數時,應該習慣設成長整型? ? l = Sheets("設置表").Range("A65536").End(xlUp).Row 上述代碼請參見《用VBA得到EXCEL表格中的行數和列數》
方法一:循環Additem 復制內容到剪貼板
代碼:
Sub OkExcel01()? ? 'www.okexcel.com.cn
? ? Dim l As Long? ?? ?? ?'表示行數時,應該習慣設成長整型
? ? Dim i As Long
? ? Dim ws As Worksheet
? ?
? ? Set ws = Worksheets("設置表")
? ? l = ws.Range("A65536").End(xlUp).Row
? ? For i = 2 To l
? ?? ???ComboBox1.AddItem (ws.Cells(i, 1))
? ? Next
End Sub 這種方法常應用在:(1)將數組加到列表中;(2)不連續的區域;(3)從數據庫中讀出的數據等等。
方法二:設置數據源區域 復制內容到剪貼板
代碼:
Sub OkExcel02()? ? 'www.okexcel.com.cn
? ? Dim l As Long
? ? Dim ws As Worksheet
? ?
? ? Set ws = Worksheets("設置表")
? ? l = ws.Range("A65536").End(xlUp).Row
? ? ComboBox1.List = ws.Range("A2:A" & l).Value
End Sub 這種方法常應用在連續的區域,如果源區域的數據固定(如民族)可以省算l的步驟。
方法三:名稱定義法:
首先定義名稱:(菜單:插入/名稱/定義)
圖3
如圖3所示,定義名稱
當數據源中的數據有增減變化時執行如下過程: 復制內容到剪貼板
代碼:
Sub OkExcel03_1()? ? 'www.okexcel.com.cn
? ? Dim l As Long
? ? Dim ws As Worksheet
? ? Set ws = Worksheets("設置表")
? ? l = ws.Range("A65536").End(xlUp).Row
? ? ThisWorkbook.Names("類別").RefersTo = "=設置表!$A$2:$A$" & l
End Sub 填寫數據時執行職下過程: 復制內容到剪貼板
代碼:
Sub OkExcel03_2()? ? 'www.okexcel.com.cn
? ? ComboBox1.List = ThisWorkbook.Names("類別").RefersToRange.Value
End Sub 這種方法常應用在連續的區域,并且一個數據源應用于多個列表框,如在不同的窗體中。
總結
以上是生活随笔為你收集整理的用VBA向列表框(ComboBox或ListBox)中填加数据的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: PWA应用入个门
- 下一篇: DOTA2怎么清除缓存_5分钟带你走进m