excel VBA选择多个工作表宏

dkqlctbz  于 2022-12-14  发布在  其他
关注(0)|答案(1)|浏览(144)

我花了一些时间寻找答案,但没有找到。
我正在尝试建立一个宏,根据使用者在输入方块中的输入来选取多个工作表,并合并LIKE运算子来一次选取所有的工作表。每个工作表都有不同的名称,但都是以5位数开始,例如20001,我可以将其做为选取的准则。
如果我硬编码5位数的值并一次选择多个工作表,我可以让它工作,但不能让它与输入框的值一起工作。我已经尝试了不同的输入框值/变量的迭代,但没有任何运气。
下面的示例带有输入框:

Public Sub SixPayTest()
    Dim Bunumber As String
    Dim ws As Worksheet

    Bunumber = Application.InputBox("Enter BU #")

    For Each ws In ActiveWorkbook.Sheets
       If ws.Name Like bunumber Then ws.Select (False)
    Next ws
End Sub

下面的这个工作示例将选择所有我需要的工作表,但没有输入框:

Public Sub SixPayTest()
    Dim ws As Worksheet

    For Each ws In ActiveWorkbook.Sheets
       If ws.Name Like "*20001*" Then ws.Select (False)
    Next ws
End Sub
5gfr0r5j

5gfr0r5j1#

您需要为类似值添加通配符。例如:

If ws.Name Like "*" & bunumber & "*" Then
    ....

更清楚的是更新之前的值。

bunumber="*" & bunumber & "*"

此外,如果要查找名称以bnumber开头的工作表,请不要在字符串中添加第一个星号“*”。

相关问题