繁体   English   中英

使用Excel VBA对选择值激活组合框操作

[英]Activate combo-box action on select value using Excel VBA

我正在显示一个组合框,其中包含工作簿的所有工作表名称。 如果我选择一个值,我希望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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM