VBA-如何在不命名的情况下引用两个单独的打开的工作簿?

时间:2019-01-09 00:12:48

标签: excel vba

我环顾了一段时间,似乎找不到我需要的东西。

1 个答案:

答案 0 :(得分:1)

请参阅工作簿

如果您知道只有两个工作簿处于打开状态,则可以使用Index属性。

Sub ReferToWorkbooks()

    Dim wb1 As Workbook
    Dim wb2 As Workbook

    Set wb1 = Workbooks(1)
    Set wb2 = Workbooks(2)

    Debug.Print wb1.Name
    Debug.Print wb2.Name

End Sub

最好遍历所有打开的工作簿,然后创建对所需工作簿的引用。

Sub ReferToWorkbooks2()

    Dim wb As Workbook

    For Each wb In Workbooks
        Debug.Print wb.Name
    Next

End Sub

如果代码中包含工作表,则可以使用Parent属性:

Sub ReferToWorkbooks3()

    Dim ws As Worksheet
    Dim wb As Workbook

    Set ws = Worksheets("Sheet1")

    Debug.Print ws.Parent.Name

    ' or

    Set wb = ws.Parent
    Debug.Print wb.Name

End Sub

如果您的代码中有范围,请两次使用Parent属性:

Sub ReferToWorkbooks4()

    Dim rng As Range
    Dim wb As Workbook

    Set rng = Range("A1")

    Debug.Print rng.Parent.Parent.Name

    ' or

    Set wb = rng.Parent.Parent
    Debug.Print wb.Name

End Sub

您应该更好地说明您可能需要的情况。