#excel #vba
#excel #vba
Вопрос:
Мне нужна помощь в понимании среды, в которой я нахожусь при использовании VBA. Я хочу просто распечатать PDF, и независимо от того, насколько прост макрос, я получаю ошибку во время выполнения:
‘1004 Ошибка, определяемая приложением или объектом.
Это неизбежно выделяет ExportAsFixedFormat
‘paragraph’ желтым цветом и выдает мне эту ошибку.
Я потратил неделю на это и упростил тестирование, создав совершенно новую книгу с поддержкой макросов, скопировав макрос в модуль1 и запустив его. Я устранил все возможные проблемы с моей средой, и это все еще доставляет мне проблемы. Я даже загрузил 64-разрядную версию, когда ранее запускал 32.
Единственное, что я могу придумать, это добавить модуль класса около месяца назад для программы лицензирования. Насколько я могу видеть, в моем приложении VBA его нигде не найти. Где бы существовал модуль класса или форма использования, кроме как в дереве Project Explorer ?!!?
Это так расстраивает, потому что ничто из этого не имеет отношения к самому макросу.
Комментарии:
1. Всегда (ОК, в 99% случаев) помогает показать код, с которым у вас возникла проблема.
2. Можете ли вы поделиться остальной частью вашего кода. Хотя вы можете сказать «неважно, насколько просто», я слышу, чего-то не хватает. Однако без остальной части вашего кода я не могу точно оценить, в чем проблема.
3. Я только что скопировал приведенный ниже код из Mark S. чтобы продемонстрировать, сколько переменных я использовал при устранении неполадок. Я хочу сосредоточиться на более важных вещах, помимо самого кода, потому что независимо от того, набираю ли я его для выполнения того, что я на самом деле хочу, или просто копирую что-то из Интернета, это неизбежно приведет к сбою. ActiveSheet. Тип экспорта в фиксированном формате: =xlTypePDF, имя файла:=FileName, _ Качество: =xlQualityStandard, IncludeDocProperties:=True, области игнорирования _:=False, OpenAfterPublish:= True
Ответ №1:
Я начинаю предварительный ответ, пока вы не предоставите дополнительную информацию (поделитесь своим кодом). Я могу вернуться, а могу и не вернуться, чтобы соответствующим образом скорректировать это.
У меня есть файл, в котором я экспортирую несколько листов в формат PDF, используя их явные имена в массиве.
Sub PDF()
Dim FileName As String
Dim Name As String
Name = ActiveWorkbook.Worksheets("Table of Contents").Range("_Period")
Application.ScreenUpdating = False
FileName = ActiveWorkbook.FullName
FileName = Left(FileName, Len(FileName) - 5) amp; " " amp; Name amp; ".PDF"
Sheets(Array("Table of Contents", "Page 1", "Page 2", "Page 3")).Select
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:=FileName, _
Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas _
:=False, OpenAfterPublish:=True
Worksheets("Table of Contents").Select
Application.ScreenUpdating = True
End Sub
Я знаю, что использование .select
не одобряется, но цель здесь в том, что по мере того, как мой код циклически проходит через эти листы, я хочу перейти на ту же вкладку, с которой я начал, чтобы я знал, что она циклически выполняется правильно, и там находятся мои другие кнопки и макросы.