如何引用已打开的不活动工作簿?

时间:2015-07-02 08:57:58

标签: excel vba

我想从活动工作簿中的代码引用到另一个工作簿, 我不想像工作簿那样输入路径(“路径”),这个引用应该是灵活的,是否有类似已经打开的工作簿的数组?

2 个答案:

答案 0 :(得分:1)

您可以在不提供完整路径的情况下将打开的工作簿分配给变量。然后,您可以使用set object变量执行您希望的任何操作。

Sub set_wb()
    Dim wb As Workbook
    Set wb = Workbooks("test_wb.xlsb")
    wb.Activate
End Sub

您还可以使用for each

遍历每个打开的工作簿
Sub wb_names()
    Dim wb As Workbook
    For Each wb In Workbooks
        Debug.Print wb.Name
    Next wb
End Sub

同样,您可以使用for使用索引迭代每个工作簿(索引取决于打开的工作簿订单)。

Sub wb_index()
    Dim i As Byte
    For i = 1 To Workbooks.Count
        Debug.Print Workbooks(i).Name
    Next i
End Sub

希望这有帮助。

答案 1 :(得分:1)

请参阅this answer

要引用已打开的工作簿,可以使用

Workbooks("book_name.xlsx")

您还可以遍历集合

Dim i As Integer

For i = 1 To Workbooks.Count
    MsgBox Workbooks(i).Name
Next i