如果点击SaveAs
或No
,如果我点击Cancel
工作正常,我有以下正确的宏,除了yes
给我一个错误。
ActiveWorkbook.SaveAs Filename:=FileName, FileFormat:=xlWorkbook, ConflictResolution:=xlLocalSessionChanges
Application.DisplayAlert =True
但是当我来到SaveAs
部分时,当我选择No
进行保存时,会出现以下错误。
Excel消息:此位置已存在名为“.........”的文件。你想替换它吗?我点击“否”或cancel
并获得运行时错误1004 ....
对象SaveAs
的方法_Workbook
失败。
我不想使用Application.DisplayAlerts = False
,因为我希望用户知道有一个已经命名相同的文件。
No
或Cancel
,但不会收到运行时错误。?答案 0 :(得分:7)
试试这个方法。
我已对代码进行了评论,因此您无法理解它。如果你这样做,那么只需要问:)
Sub Sample()
Dim fName As Variant
'~~> Offer user to Save the file at a particular location
fName = Application.GetSaveAsFilename
'~~> Check if it is a valid entry
If fName <> False Then
'~~> Check before hand if the file exists
If Not Dir(fName) <> "" Then
'~~> If not then save it
ActiveWorkbook.SaveAs Filename:=fName
Else
'~~> Trap the error and ignore it
On Error Resume Next
If Err.Number = 1004 Then
On Error GoTo 0
Else '<~~ If user presses Save
ActiveWorkbook.SaveAs Filename:=fName, _
FileFormat:=xlWorkbook, _
ConflictResolution:=xlLocalSessionChanges
End If
End If
End If
End Sub