利用VBA設計並實現工作表數據的動態查詢。功能介紹:
- 1.當我們點擊“動態加載並查詢”時,將工作表數據加載到列表框中。同時,我們可以下拉選擇查詢字段;
- 2.當我們在文本框實時輸入時,列表框將動態顯示滿足條件的數據。
- 3.當文本框內容全部清除時,列表框將顯示工作表的全部數據。
實現效果GIF
UI設計
這裡主要使用到ComboBox 、TextBox和ListView控件。
- 1.ComboBox控件:用於選擇“查找字段”,名稱設置為cbbField,Style屬性設置為:2-fmStyleDropDownList。
- 2.TextBox控件:用於輸入查找內容,名稱設置為tbSearch。
- 3.ListView控件:用於顯示全部或滿足條件的工作表數據,名稱和相關屬性均默認。
窗體主界面設計VBA代碼
1.定義全局變量-arr數組
'用於保存工作表數據 Dim arr() As Variant
2.窗體初始化事件
Private Sub UserForm_Initialize() cbbField.Value = Cells(1, 2) '將工作表的單元格數據賦值給arr arr = Range("a1").CurrentRegion Dim j As Integer '從第一列到最後一列 For j = 1 To UBound(arr, 2) '將查找字段添加至複選框 cbbField.AddItem Cells(1, j) '給ListView控件增加標題行 ListView1.ColumnHeaders.Add , , Cells(1, j), 60 Next With ListView1 .View = lvwReport .Gridlines = True End With Dim i As Integer For i = 2 To UBound(arr, 1) Dim item As ListItem Set item = ListView1.ListItems.Add item.Text = arr(i, 1) For j = 2 To UBound(arr, 2) item.SubItems(j - 1) = arr(i, j) Next Next tbSearch.SetFocus End Sub
3.TextBox控件的Change事件
Private Sub tbSearch_Change() '清空ListView的所有項目 ListView1.ListItems.Clear Dim i As Integer, j As Integer For i = 2 To UBound(arr, 1) If arr(i, cbbField.ListIndex + 1) Like tbSearch.Text & "*" Then Dim item As ListItem Set item = ListView1.ListItems.Add item.Text = arr(i, 1) For j = 2 To UBound(arr, 2) item.SubItems(j - 1) = arr(i, j) Next End If Next End Sub
以上就是利用VBA實現工作表數據的動態查詢的教程,希望大家喜歡,請繼續關注。
原創文章,作者:簡單一點,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/184665.html