В настоящее время я работаю над Excel Makro для работы, и одна из командных кнопок должна скопировать входные данные из пользовательской формы на лист моей рабочей книги и экспортировать этот лист в pdf.Макрос работает нормально (так как я нашел большую его часть в Интернете), но он должен остановиться, как только пользователь нажмет кнопку «Отмена» в окне «Сохранить как».
Моя проблема в том,что макрос все еще сохраняет лист и вызывает PDF "False.pdf".Может ли кто-нибудь помочь мне понять, что я должен изменить, чтобы он работал правильно?
Код, который я использую:
Private Sub CommandButton3_Click()
Dim wsA As Worksheet
Dim wbA As Workbook
Dim strTime As String
Dim strName As String
Dim strPath As String
Dim strFile As String
Dim strPathFile As String
Dim myFile As Variant
On Error GoTo errHandler
ThisWorkbook.Worksheets("Export").Range("B2").Value = Label14.Caption
ThisWorkbook.Worksheets("Export").Range("B4").Value = Label12.Caption
ThisWorkbook.Worksheets("Export").Range("K4").Value = Paketdruck.Value
ThisWorkbook.Worksheets("Export").Range("H2").Value = Label16.Caption
ThisWorkbook.Worksheets("Export").Range("J2").Value = Label18.Caption
ThisWorkbook.Worksheets("Export").Range("G4").Value = Label22.Caption
ThisWorkbook.Worksheets("Export").Range("B17").Value = Label37.Caption
ThisWorkbook.Worksheets("Export").Range("B19").Value = Label38.Caption
ThisWorkbook.Worksheets("Export").Range("B21").Value = Label39.Caption
ThisWorkbook.Worksheets("Export").Range("C17").Value = Label42.Caption
ThisWorkbook.Worksheets("Export").Range("C19").Value = Label43.Caption
ThisWorkbook.Worksheets("Export").Range("C21").Value = Label44.Caption
ThisWorkbook.Worksheets("Export").Range("E17").Value = Label46.Caption
ThisWorkbook.Worksheets("Export").Range("E19").Value = Label47.Caption
ThisWorkbook.Worksheets("Export").Range("E21").Value = Label48.Caption
ThisWorkbook.Worksheets("Export").Range("G17").Value = Label50.Caption
ThisWorkbook.Worksheets("Export").Range("G19").Value = Label51.Caption
ThisWorkbook.Worksheets("Export").Range("G21").Value = Label52.Caption
ThisWorkbook.Worksheets("Export").CheckBox1.Value = Me.CheckBox1.Value
ThisWorkbook.Worksheets("Export").CheckBox2.Value = Me.CheckBox2.Value
ThisWorkbook.Worksheets("Export").CheckBox3.Value = Me.CheckBox3.Value
ThisWorkbook.Worksheets("Export").CheckBox4.Value = Me.CheckBox4.Value
ThisWorkbook.Worksheets("Export").CheckBox5.Value = Me.CheckBox5.Value
Set wbA = ActiveWorkbook
Set wsA = ThisWorkbook.Worksheets("Export")
strTime = Format(Now(), "yyyymmdd")
'get active workbook folder, if saved
strPath = wbA.Path
If strPath = "" Then
strPath = Application.DefaultFilePath
End If
strPath = strPath & "\"
'create default name for savng file
strName = wsA.Name
strFile = strName & "_" & strTime & ".pdf"
strPathFile = strPath & strFile
'user can enter name and
' select folder for file
myFile = Application.GetSaveAsFilename _
(InitialFileName:=strPathFile, _
FileFilter:="PDF Files (*.pdf), *.pdf", _
Title:="Select Folder and FileName to save")
'export to PDF if a folder was selected
If myFile <> "False" Then
wsA.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=myFile, _
Quality:=xlQualityStandard, _
IncludeDocProperties:=True, _
IgnorePrintAreas:=False, _
OpenAfterPublish:=False
'confirmation message with file info
MsgBox "PDF file has been created: " _
& vbCrLf _
& myFile
End If
exitHandler:
Exit Sub
errHandler:
MsgBox "Could not create PDF file"
Resume exitHandler
End Sub
Спасибо за помощь:)
Редактировать Я разобрался в проблеме.Мне пришлось изменить результат для переменной «myFile», так как я использую немецкую лицензию Excel, мне пришлось проверить
If myFile <> "Falsch" Then
Code
End If
Спасибо за помощь @ SolarMike