VBA EXCEL сохранить как .pdf

#excel #vba #pdf

#excel #vba #PDF

Вопрос:

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

Но всегда есть ошибка во время выполнения 5. Недопустимый вызов процедуры или аргумент.

Заранее благодарю вас.

 Dim rng As Range
Set rng = Range("A1:K49")

Dim ID As String
Dim DIR As String

ID = Range("E5").Value amp; "_" amp; Range("E7").Value

DIR = ActiveWorkbook.Path

MsgBox ActiveWorkbook.Path, vbInformation, "Workbook Path"
    
rng.ExportAsFixedFormat _
Type:=xlTypePDF, _
Filename:=DIR   ID   ".pdf", _
Quality:=xlQualityStandard, _
IgnorePrintAreas:=True, _
OpenAfterPublish:=False
  

Комментарии:

1. Первый шаг, используйте amp; для объединения вместо . Далее, вероятно, отсутствует обратная косая черта между Dir и ID .

2. Ах, так это то, что ты пытался написать @BigBen . Я видел первое редактирование, и это сбивало с толку. Я считаю, что вам нужно удвоить обратную косую черту внутри кодовых меток. Надеюсь, так: . Хорошо, я ошибся, двойные кодовые метки с каждой стороны и только одна обратная косая черта

3. @Andreas — да, я всегда забываю / никогда не пытаюсь выяснить, сколько обратных ссылок необходимо.

4. Имейте в виду, что вы всегда можете самостоятельно отладить свой код, прежде чем писать вопрос. Простой msgbox DIR и msgbox ID показал бы вам, каковы значения, которые также полезно включить в вопрос.

5. Теперь, когда я использую этот код: rng.ExportAsFixedFormat _ Type:=xlTypePDF, _ Filename:=»DIR» «ID» amp; «.pdf», _ Quality:= xlQualityStandard, _ IgnorePrintAreas:=True, _ OpenAfterPublish:=False, он пишет «несоответствие типов»