我目前有几本工作簿正在打开。其中之一有时被命名为“ trade1”,有时被命名为“ trade2”,或其他任何东西,但总是开始“ 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 - VBA-当我只知道部分工作簿名称时如何设置工作簿类型变量,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43768819/

10-10 14:10