在名称未知时激活非活动工作簿

时间:2017-07-17 13:09:03

标签: excel vba excel-vba

是否有办法在不知道工作簿的名称时激活打开(但不活动)的工作簿?我想在一个工作簿中构建一个宏,当运行时会打开另一个打开的工作簿,然后执行该工作簿上的其余宏。

此外,如果用户有多个打开,有没有办法从几个打开的非活动工作簿中进行选择?

提前致谢!

1 个答案:

答案 0 :(得分:0)

您可以遍历应用程序工作簿集合中的所有工作簿:

var wb as workbook
For Each wb In Application.Workbooks
    If instr(1, wb.name, "hi") Then --activate a workbook if it's name has "hi" in it
        wb.activate
    End If

    'or

    If wb.name <> ThisWorkbook.name Then --find the first workbook that isn't this workbook
         wb.activate
    End If
Next

基本上,在循环内部,您可以测试找到的每个工作簿(存储在wb变量中)并根据您要测试的属性激活它。这与我可以回答的具体一样,因为您没有描述作为一个人,您将如何识别应该激活哪个工作簿。你只能说你不能用它的名字来识别它。