Экспорт .xlsx и .pdf, где имя файла уже существует - PullRequest
0 голосов
/ 10 июля 2019

Долгое время слушатель, впервые звонящий по телефону. Нужна помощь БЕЙСИКА, которую я не могу на всю жизнь получить правильно в отношении некоторого кода.

Сохранение как файла .xlsx, так и файла PDF в одном файлеместоположение, просто не могу заставить его запросить, если имя файла уже существует

Sub SaveAs()
Dim Path As String
Dim filename As String
Path = "C:\Users\yard\Dropbox\Modus\Purchase Orders\"
filename = Range("E4")
            Application.DisplayAlerts = False
    ActiveWorkbook.SaveAs filename:=Path & filename & ".xls", FileFormat:=xlOpenXMLWorkbook

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=Path & filename & ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=True

End Sub

Или я отменил это с помощью Application.DisplayAlerts = False?

Я не хочу бытьпри сохранении файла в формате Excel запрашивается книга с разрешением макросов, однако мне бы хотелось, чтобы он спросил, существует ли уже имя файла.

Кто-нибудь может бросить мне кость?

Спасибо!

1 Ответ

0 голосов
/ 10 июля 2019

См. Строки с условиями If, добавленными в код:

Dim Path As String
Dim filename As String

Path = "C:\Users\yard\Dropbox\Modus\Purchase Orders\"

filename = Range("E4")

    Application.DisplayAlerts = False

    If Not Len(dir(Path & filename & ".xls")) = 0 Then MsgBox "Xls File Already Exist"
    ActiveWorkbook.SaveAs filename:=Path & filename & ".xls", FileFormat:=xlOpenXMLWorkbook

    If Not Len(dir(Path & filename & ".pdf")) = 0 Then MsgBox "PDF File Already Exist"
    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, filename:=Path & filename & ".pdf", Quality:= _
        xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
        OpenAfterPublish:=True
    Application.DisplayAlerts = True

End Sub

Вы можете использовать Dir, чтобы проверить, существует ли файл

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...