利用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 Sub3.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
微信掃一掃
支付寶掃一掃