当用户输入的文件名有非法字符时如何处理错误?
How to handle error when user entry for file name has illegal characters?
我将当前工作表保存为 PDF 文档,使用输入范围("Company_Name")
的信息生成部分文件名。
我遇到的一个问题是用户使用文件名中禁止的特殊字符 (& " ? < > # { } % ~ / \ )
。
'Save Copy of Order Form in PDF Format
Dim path As String
Dim fname As String
fname = Sheets("ORDER FORM").Range("Company_Name").Value & " - " & Format(Now(), "dd-mm-yyyy hhmmss")
path = Application.ActiveWorkbook.path
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=path & "\" & fname & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Application.ScreenUpdating = True
'Completion MsgBox
MsgBox "Order has saved in PDF Format and stored in file:" & vbNewLine & path, vbInformation + vbOKOnly, "File Saved"
On Error GoTo ErrorHandler
ErrorHandler:
MsgBox "Please check that the company name does not include any of the characters highlighted in the popup box", vbCritical
Resume
如果公司名称中没有特殊字符,则此代码有效。
我正在尝试创建一个错误处理程序,向用户发出 msgbox
以检查公司名称是否包含任何特殊字符。
- 你的
On Error GoTo ErrorHandler
需要在你的 sub 的顶部,或者至少在错误发生的位置之前。
- 我建议只执行类似于下面的子字符串检查而不是错误处理程序,因为错误处理程序会捕获可能发生的任何类型的错误。
If InStr(1, path, "/", vbTextCompare) = 0 Then
MsgBox "Contains illegal characters"
End Sub
End If
我将当前工作表保存为 PDF 文档,使用输入范围("Company_Name")
的信息生成部分文件名。
我遇到的一个问题是用户使用文件名中禁止的特殊字符 (& " ? < > # { } % ~ / \ )
。
'Save Copy of Order Form in PDF Format
Dim path As String
Dim fname As String
fname = Sheets("ORDER FORM").Range("Company_Name").Value & " - " & Format(Now(), "dd-mm-yyyy hhmmss")
path = Application.ActiveWorkbook.path
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=path & "\" & fname & ".pdf", _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
Application.ScreenUpdating = True
'Completion MsgBox
MsgBox "Order has saved in PDF Format and stored in file:" & vbNewLine & path, vbInformation + vbOKOnly, "File Saved"
On Error GoTo ErrorHandler
ErrorHandler:
MsgBox "Please check that the company name does not include any of the characters highlighted in the popup box", vbCritical
Resume
如果公司名称中没有特殊字符,则此代码有效。
我正在尝试创建一个错误处理程序,向用户发出 msgbox
以检查公司名称是否包含任何特殊字符。
- 你的
On Error GoTo ErrorHandler
需要在你的 sub 的顶部,或者至少在错误发生的位置之前。 - 我建议只执行类似于下面的子字符串检查而不是错误处理程序,因为错误处理程序会捕获可能发生的任何类型的错误。
If InStr(1, path, "/", vbTextCompare) = 0 Then
MsgBox "Contains illegal characters"
End Sub
End If