excel - VBA-当我只知道部分工作簿名称时如何设置工作簿类型变量

标签 excel vba

我当前打开了几个工作簿。其中一个有时被命名为“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/

相关文章:

vba - 我在 'run a script' 选择框中看不到我的 VBA 宏

excel - 如何将给定数字转换为时间格式 HH :MM:SS in VBA?

excel - 如果单元格值为数字,则将单元格区域除以特定数字

R 中 difftime 的结果与 excel 和 timeanddate.com 不同

java - 来自 Apache POI 的文件 Excel 无法由 Ms Excel 打开(损坏)

excel - 在 Excel 中打开包含特殊字符的 .csv 文件

vba - 以编程方式更改“不要在相同样式的段落之间添加空格”

vba - 如果路径不存在,则创建新文件夹(否则粘贴到现有文件夹中)

excel - 使用 VBA 循环遍历文件夹中的文件?

excel - 将整数和整数数组传递给 VBA 函数