[英]If SaveAs location is already open, I get 1004 Error
一些VBA SaveAs
代碼遇到了一些最終用戶問題。
下面的代碼為當前工作簿執行一個SaveAs
,允許用戶選擇名稱,關閉新保存的文件並重新打開原始文件。 這是針對服務器上許多用戶的Excel工作簿的,其中許多人將不斷打開/關閉文件。
問題是,當用戶嘗試執行以下代碼以保存另一個用戶已打開的文件時,程序將顯示運行時錯誤“ 1004”:您無法使用與另一個打開的工作簿同名的名稱保存此工作簿或添加-in。等
有誰知道如何檢查SaveAs
目標是否已經打開,然后顯示MsgBox
“文件已由其他用戶打開。請等待,直到他們關閉或選擇其他文件名。”
任何幫助將不勝感激,無法弄清楚這一點!
Sub ExportTrip()
Dim ActSheet As Worksheet
Dim ActBook As Workbook
Dim CurrentFile As String
Dim NewFile As String
Application.ScreenUpdating = False ' Prevents screen refreshing.
CurrentFile = ThisWorkbook.FullName ' saves filename of current workbook
NewFile = Application.GetSaveAsFilename( _
InitialFileName:=Sheets("Master").Range("B5"), _
FileFilter:="ARMS Export *.xlsm (*.xlsm),") ' gets filename for exported workbook
If NewFile <> "" And NewFile <> "False" Then 'if user doesn't pick name
ActiveWorkbook.SaveAs Filename:=NewFile, _
FileFormat:=52, _
Password:="", _
WriteResPassword:="", _
ReadOnlyRecommended:=False, _
CreateBackup:=False
Set ActBook = ActiveWorkbook 'declares variable for open workbook
Workbooks.Open CurrentFile 'reopens original workbook
Application.DisplayAlerts = False
ActBook.Close 'closes exported workbook
Application.DisplayAlerts = True
End If
Application.ScreenUpdating = True
End Sub
試試這個
從這里開始您的錯誤信息
'// Here msgbox
On Error GoTo ErrMsg
ActiveWorkbook.SaveAs FileName:=NewFile, _
FileFormat:=52, _
Password:="", _
WriteResPassword:="", _
ReadOnlyRecommended:=False, _
CreateBackup:=False
Set ActBook = ActiveWorkbook 'declares variable for open workbook
Workbooks.Open CurrentFile 'reopens original workbook
Application.DisplayAlerts = False
ActBook.Close 'closes exported workbook
Application.DisplayAlerts = True
End If
Application.ScreenUpdating = True
並確保ErrMsg:在End Sub
之前
。
'// Here Err MsgBox
ErrMsg:
MsgBox ("Type your message here."), , "MESSAGE TITLE"
End Sub
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.