我使用输入到范围("Company_Name")
的信息将当前工作表保存为PDF文档,以生成部分文件名。
我遇到的一个问题是,用户使用文件名(& " ? < > # { } % ~ / )
中禁止使用的特殊字符。
'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
需要位于子节点的顶部,或者至少在发生错误之前 - 我建议只执行类似于下面的子字符串检查,而不是错误处理程序,因为错误处理程序可以捕获任何可能发生的错误
If InStr(1, path, "/", vbTextCompare) = 0 Then
MsgBox "Contains illegal characters"
End Sub
End If