我正在显示一个组合框,其中包含工作簿的所有工作表名称。如果我选择一个值,我希望Excel跳至所选工作表。
我尝试在此代码上执行激活代码行,但似乎不起作用。
Private Sub ComboBox1_Change()
Dim Sh As Worksheet
Dim sVal As String
With ComboBox1
sVal = .Text
.Clear
For Each Sh In ActiveWorkbook.Sheets
If Sh.Name <> "Inputs" Then
.AddItem Sh.Name
End If
Next
.Value = sVal
End With
End Sub
您要在表格中添加工作表名称Change Event
吗?这将重新触发变更事件。我建议将其填充,UserForm_Initialize
以防万一。
这是您要尝试的吗?
Dim Sh As Worksheet
Private Sub UserForm_Initialize()
For Each Sh In ThisWorkbook.Sheets
If Sh.Name <> "Inputs" Then
ComboBox1.AddItem Sh.Name
End If
Next
ComboBox1.Style = fmStyleDropDownList
End Sub
Private Sub ComboBox1_Change()
With ThisWorkbook.Sheets(ComboBox1.Text)
.Visible = xlSheetVisible
.Activate
End With
End Sub
我的假设
您在用户窗体上有此组合框。如果不是,则对代码进行相关更改。但是要旨保持不变。
评论的跟进
在工作表上添加一个按钮。说出名字Refresh
并使用此代码
Dim Sh As Worksheet
Private Sub CommandButton1_Click()
ComboBox1.Clear
For Each Sh In ThisWorkbook.Sheets
If Sh.Name <> "Inputs" Then
ComboBox1.AddItem Sh.Name
End If
Next
ComboBox1.Style = fmStyleDropDownList
End Sub
Private Sub ComboBox1_Change()
With ThisWorkbook.Sheets(ComboBox1.Text)
.Visible = xlSheetVisible
.Activate
End With
End Sub
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句