我的資料表中有 199 個供應商名稱。他們每個人都有自己的電子表格。您可以猜到我需要通過單擊手動找到必要的電子表格。那么如何通過 Combobox 使用 VBA 自動化該程序呢?
uj5u.com熱心網友回復:
我會讓你開始。創建用戶表單。在我的示例中,我將其命名為默認的“Userform1”
在它上面,我放置了一個 ComboBox。同樣,默認名稱是 ComboBox1。
然后,我將以下代碼添加到顯示用戶表單時填充框的用戶表單:
Private Sub UserForm_Initialize()
Refresh_ComboBox
End Sub
Private Sub Refresh_ComboBox()
ComboBox1.Clear
For Each sh In ThisWorkbook.Sheets
If sh.Visible = xlSheetVisible Then ComboBox1.AddItem sh.Name
Next
End Sub
然后我添加了以下事件,當 ComboBox 值更改時激活所選作業表:
Private Sub ComboBox1_Change()
ThisWorkbook.Sheets(ComboBox1.Value).Activate
End Sub
您可能需要考慮改進功能的事項:
- 用戶表單是否應該在使用后消失?
- 它應該是非模態的嗎?
- 如果添加了新的作業表怎么辦?
- 這只處理可見的作業表。隱藏的呢?
uj5u.com熱心網友回復:
感謝大家。
我用 Listbox 弄明白了。
Private Sub TextBox17_Change()
Dim i As Long
Me.TextBox17.Text = StrConv(Me.TextBox17.Text, 1)
Me.ListBox4.Clear
For i = 2 To Application.WorksheetFunction.CountA(Sayfa1.Range("A:A"))
a = Len(Me.TextBox17.Text)
'If Left(Sayfa2.Cells(i, 3).Value, a) = Left(Me.TextBox17.Text, a) Then
If Sayfa1.Cells(i, 1).Value Like "*" & TextBox17.Text & "*" Then
Me.ListBox4.AddItem Sayfa1.Cells(i, 1).Value
Me.ListBox4.List(ListBox4.ListCount - 1, 3) = Sayfa1.Cells(i, 1).Value
End If
Next i
End Sub
Private Sub ListBox4_Click()
Dim x As Variant
x = ListBox4.Text
Sheets(x).Select
Unload Me
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/513809.html
標籤:擅长vba组合框
