通过variables和If语句引用外部工作簿VBA

目前我的代码看起来像这样,它工作正常

Dim WorkbookVar As Workbook Dim Path As String Path = "C:\Path.xlsx" Set WorkbookVariable = Workbooks.Open (Filename:=MCDistroNumberPath) 

但我希望它进一步,并有一个if语句说If这个工作簿已经打开Then跳过它,并开始运行我的macros的其余部分。

我将如何去做呢?

考虑把它放到像下面这样的函数中。

 Public Function GetOrOpenWorkbook(ByVal sFullPath As String) As Workbook Dim wbReturn As Workbook On Error Resume Next Set wbReturn = Workbooks(Dir(sFullPath)) On Error GoTo 0 If wbReturn Is Nothing Then Set wbReturn = Workbooks.Open(sFullPath) End If Set GetOrOpenWorkbook = wbReturn End Function Sub test() Dim wb As Workbook Set wb = GetOrOpenWorkbook("C:\Path\Path.xlsx") End Sub 

Dir函数将只返回没有path的文件名。 如果具有该名称的工作簿已经打开,它将返回该工作簿。 如果不是,则尝试打开它。