如果第二次使用(VBA)打开同一文件时已closuresExcel文件(已closures)

我有一个打开Excel文件的命令button。

但是,如果第二次打开同一个文件,它应该先closures它然后重新打开它。

所以我正在寻找这样的代码 – 我会非常感谢这个帮助。

检查是否打开,如果没有打开,请使用close方法closures它。

以下代码来源于此VBAXpress文章

Function IsFileOpen(FileName As String) Dim iFilenum As Long Dim iErr As Long On Error Resume Next iFilenum = FreeFile() Open FileName For Input Lock Read As #iFilenum Close iFilenum iErr = Err On Error Goto 0 Select Case iErr Case 0: IsFileOpen = False Case 70: IsFileOpen = True Case Else: Error iErr End Select End Function Sub test() If Not IsFileOpen("C:\MyTest\volker2.xls") Then Workbooks.Open "C:\MyTest\volker2.xls" End If End Sub 

如果只想closures工作簿而不提示用户有关保存工作簿的任何确认,则可以简单地执行此操作:

 ActiveWorkbook.Close False 

'closures活动工作簿而不保存任何更改

 ActiveWorkbook.Close True 

'closures活动工作簿并保存所有更改

 ActiveWorkbook.Close 

'closures活动工作簿并让用户决定是否要保存更改

 Workbooks("BOOK1.XLS").Close SaveChanges:=False 

工作簿有一个Close方法。

看到这里