我环顾了一段时间,似乎找不到我需要的东西。
答案 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
您应该更好地说明您可能需要的情况。