希望有人可以帮助我解决以下问题。
我想确保特定工作簿在获得更新之前已关闭。 为此我打算开始。
Private Sub Command1_Click()
workbooks("workbookname.XLSM").close Savechanges = False
End Sub
我也试过
workbooks("workbookname.Xlsm").close
我已经单独运行,两者都给我错误代码9。
特定文件将始终位于用户的桌面上。
我认为它可能与我的参考文献有关,所以我检查并启用了以下参考。 (其他一些原因)。
真的希望有人可以帮我这个。我一直在浏览相当多的论坛,但没有找到相同的问题或解决方案。
w.k.r。 DRAC。
答案 0 :(得分:0)
您必须检查它是否打开,并正确引用打开的对象。下面的函数(我在某处找到了),特别是返回关于文件的真/假值:
您可以这样使用它:
Private Sub Command1_Click()
Dim xls As Object
If IsWorkBookOpen("C:/Users/Desktop/Workbook.xlsm") = True Then
Set xls = GetObject("C:/Users/Desktop/Workbook.xlsm")
xls.Close True
Else
'do stuff if closed
End If
End Sub
功能:
Function IsWorkBookOpen(FileName As String)
Dim ff As Long, ErrNo As Long
On Error Resume Next
ff = FreeFile()
Open FileName For Input Lock Read As #ff
Close ff
ErrNo = Err
On Error GoTo 0
Select Case ErrNo
Case 0: IsWorkBookOpen = False
Case 70: IsWorkBookOpen = True
Case Else: Error ErrNo
End Select
End Function