单击“否”替换文件时如何返回保存消息框
Posted
技术标签:
【中文标题】单击“否”替换文件时如何返回保存消息框【英文标题】:How to come back to Save message box when clicking "No" to replace file 【发布时间】:2012-07-31 10:37:40 【问题描述】:在 Excel-VBA 中,我使用以下代码保存文件:
fullFileName = Application.GetSaveAsFilename(...)
ActiveWorkbook.SaveAs fullFileName
在选择的名称已经存在之前,这可以正常工作。然后消息框提示:“是否应该替换文件?”。我想回复No
,然后回到上一个消息框,选择另一个名字。
相反,单击No
会中断宏并产生错误。
我该如何解决这个问题?
(网络上有很多例子展示了如何使用Application.DisplayAlerts=False
绕过这个消息框并保存。这不是我想要的!)
【问题讨论】:
【参考方案1】:这就是我通常使用的...
Sub Sample()
Dim fullFileName
fullFileName = Application.GetSaveAsFilename( _
fileFilter:="Text Files (*.txt), *.txt")
If fullFileName <> False Then
If fileExists(fullFileName) = False Then
ActiveWorkbook.SaveAs fullFileName
Else
MsgBox "File Exists. File Save Aborted"
End If
End If
End Sub
Public Function fileExists(strFullPath As Variant) As Boolean
On Error GoTo Whoa
If Not Dir(strFullPath, vbDirectory) = vbNullString Then fileExists = True
Whoa:
On Error GoTo 0
End Function
跟进
你的意思是这样吗?
Sub Sample()
Dim fullFileName
Dim conti As Boolean
conti = True
Do While conti = True
fullFileName = Application.GetSaveAsFilename( _
fileFilter:="Text Files (*.txt), *.txt")
If fullFileName <> False Then
If fileExists(fullFileName) = False Then
ActiveWorkbook.SaveAs fullFileName
conti = False
Else
MsgBox "File Exists. Returning you back to the dialog box"
End If
Else
conti = False
End If
Loop
End Sub
Public Function fileExists(strFullPath As Variant) As Boolean
On Error GoTo Whoa
If Not Dir(strFullPath, vbDirectory) = vbNullString Then fileExists = True
Whoa:
On Error GoTo 0
End Function
【讨论】:
谢谢悉达多。使用您的代码,当文件存在时,保存被中止。有没有办法点击“不,我不想替换现有文件”并返回GetSaveAsFilename
对话框?
就是这样。感谢您的快速回复!以上是关于单击“否”替换文件时如何返回保存消息框的主要内容,如果未能解决你的问题,请参考以下文章