当用户输入的文件名有非法字符时如何处理错误?

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 以检查公司名称是否包含任何特殊字符。

  1. 你的 On Error GoTo ErrorHandler 需要在你的 sub 的顶部,或者至少在错误发生的位置之前。
  2. 我建议只执行类似于下面的子字符串检查而不是错误处理程序,因为错误处理程序会捕获可能发生的任何类型的错误。
If InStr(1, path, "/", vbTextCompare) = 0 Then
 MsgBox "Contains illegal characters"
 End Sub
End If