我当前打开了几个工作簿。其中一个有时被命名为“trade1”,有时被命名为“trade2”,或其他任何名称,但始终以“trade”开头。我正在尝试设置一个变量,以便无论其名称是否打开并且以“trade”开头,该工作簿现在都将是该变量。因此,在整个宏中,我可以引用该书并将其用于 Trade.activate 等操作来选择该书。这是我当前的代码,我收到运行时错误“9”:下标超出范围错误:
Dim Trade as Workbook
Set Trade = workbooks("trade" & "*" & ".xls")
我知道这可以通过函数来完成,但希望它能以更简单的方式完成。这是可能的还是我在做傻事?
最佳答案
您可以循环浏览打开的工作簿并找到正确的工作簿,然后设置变量:
Dim Trade As Workbook
Dim t As Workbook
For Each t In Workbooks
If Left(t.Name, 5) = "trade" Then
Set trade = Workbooks(t.Name)
End If
Next t
关于excel - VBA-当我只知道部分工作簿名称时如何设置工作簿类型变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43768819/