Wie können Sie das folgende Skript so ändern, dass es in einem bestimmten Ordner gespeichert wird, anstatt zu fragen?
Sub Saveaspdfandsend() Dim xSht As Worksheet Dim xFileDlg As FileDialog Dim xFolder As String Dim xYesorNo As Integer Dim xOutlookObj As Object Dim xEmailObj As Object Dim xUsedRng As Range Set xSht = ActiveSheet Set xFileDlg = Application.FileDialog(msoFileDialogFolderPicker) If xFileDlg.Show = True Then xFolder = xFileDlg.SelectedItems(1) Else MsgBox "You must specify a folder to save the PDF into." & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Must Specify Destination Folder" Exit Sub End If xFolder = xFolder + "\" + xSht.Name + Format(Now, " yyyy-mm-dd hmmAM/PM") + ".pdf" 'Check if file already exist If Len(Dir(xFolder)) > 0 Then xYesorNo = MsgBox(xFolder & " already exists." & vbCrLf & vbCrLf & "Do you want to overwrite it?", _ vbYesNo + vbQuestion, "File Exists") On Error Resume Next If xYesorNo = vbYes Then Kill xFolder Else MsgBox "if you don't overwrite the existing PDF, I can't continue." _ & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Exiting Macro" Exit Sub End If If Err.Number <> 0 Then MsgBox "Unable to delete existing file. Please make sure the file is not open or write protected." _ & vbCrLf & vbCrLf & "Press OK to exit this macro.", vbCritical, "Unable to Delete File" Exit Sub End If End If Set xUsedRng = xSht.UsedRange If Application.WorksheetFunction.CountA(xUsedRng.Cells) <> 0 Then 'Save as PDF file xSht.ExportAsFixedFormat Type:=xlTypePDF, Filename:=xFolder, Quality:=xlQualityStandard 'Create Outlook email Set xOutlookObj = CreateObject("Outlook.Application") Set xEmailObj = xOutlookObj.CreateItem(0) With xEmailObj .Display .To = "" .CC = "csc.canada@philips.com" .Subject = xSht.Name + ".pdf" .Attachments.Add xFolder If DisplayEmail = False Then '.Send End If End With Else MsgBox "The active worksheet cannot be blank" Exit Sub End If End Sub
Danke, Michael
Willkommen bei Super User! Woher hast du dieses Skript und was hast du bisher ausprobiert?
bertieb vor 6 Jahren
0
2 Antworten auf die Frage
0
HackSlash
Sie können sehen, dass das ausgewählte Element in eine Variable namens xFolder eingefügt wird . Kommentieren Sie den Abschnitt über xFileDlg bis zu dem Punkt, an den xFolder angehängt wird.
Wenn das Problem dadurch gelöst wurde, markieren Sie die Lösung. Grünes Häkchen
HackSlash vor 6 Jahren
0
0
leach613
Der einzige Grund, aus dem Sie einen Ordner auswählen müssen, ist dieser Teil.
Set xFileDlg = Application.FileDialog (msoFileDialogFolderPicker)
Wenn xFileDlg.Show = True Dann xFolder = xFileDlg.SelectedItems (1) Else MsgBox "Sie müssen einen Ordner angeben, in dem die PDF-Datei gespeichert werden soll." & vbCrLf & vbCrLf & "Drücken Sie OK, um dieses Makro zu beenden.", vbCritical, "Muss Zielordner angeben" Exit Sub End If
Dies ist ideal, wenn Sie den Ordner jedes Mal auswählen möchten oder einen neuen Ordner erstellen müssen. Wenn der Ordner jedoch vorhanden ist und Sie ihn immer an derselben Stelle speichern, nehmen Sie einfach den obigen Teil heraus und fügen Sie den Ordnerort manuell hinzu.