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

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

您可以将一个打开的工作簿分配给一个variables,而不提供完整的path。 然后,您可以使用set objectvariables来执行您所希望的任何操作。

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

您也可以遍历每个打开的工作簿

 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 

希望这可以帮助。

看到这个答案 。

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

 Workbooks("book_name.xlsx") 

您也可以遍历集合

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