Как напечатать несколько PDF-файлов с графиком, управляемым выпадающим списком, используя VBA?
306
user2800
У меня есть лист Excel, который генерирует комбинированную диаграмму для отображения данных о тенденциях в 49 рабочих ячейках производства. Исходные данные диаграммы основаны на ячейках, которые содержат большое количество формул (центр изображения ниже). Я построил лист так, чтобы пользователь выбирал рабочую ячейку из раскрывающегося списка в A5, и все формулы и графики автоматически обновлялись. Источником для проверки данных A5 является столбец в таблице, найденной на другом листе. Я настроил этот лист с областью печати вокруг графика.
Прямо сейчас я могу использовать следующий код, чтобы просмотреть все графики и распечатать их на одной странице PDF:
Sub TestLoopMacro() Sheets("My Sheet").Select 'SOURCE FOR TIMER CODE: www.TheSpreadsheetGuru.com/the-code-vault Dim StartTime As Double Dim SecondsElapsed As Double 'Remember time when macro starts StartTime = Timer Dim Count As Integer For Count = 2 To 50 Range("A5").Select Range("A5").Value = Worksheets("Cells Sheet").Range("E" & Count) ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _ "H:\Some Path\Test Exports\" & Worksheets("Cells Sheet").Range("B" & Count) & ".pdf", Quality:=xlQualityStandard, _ IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _ False Next Count 'Determine how many seconds code took to run SecondsElapsed = Round(Timer - StartTime, 2) 'Notify user in seconds MsgBox "This code ran successfully in " & SecondsElapsed & " seconds", vbInformation End Sub
Я хотел бы иметь возможность печатать графики для всех 49 ячеек в одном PDF. Этот код успешно создает 49 PDF-файлов с уникальными графиками.
Есть ли способ экспортировать их в один и тот же PDF-файл с помощью VBA вместо их последующего слияния с Adobe / аналогичным? Я нашел опубликованные вопросы о попытках сделать похожие вещи, но они включали области печати, экспортируемые из нескольких листов (в отличие от нескольких экземпляров одного листа).
что ты уже испробовал? Цикл FOR звучит как правильное решение, так что вы уже пробовали это?
music2myear 5 лет назад
0
Мне удалось заставить петлю работать этим утром. Вопрос был отредактирован с моим текущим кодом состояния. Он успешно проходит по всем 49 ячейкам и создает 49 PDF-файлов с правильными именами. Но я бы хотел, чтобы они были в одном PDF, а не в отдельном. (примечание: время выполнения макроса составляет около 150 секунд)
user2800 5 лет назад
0
Посмотрите советы по ускорению макросов Excel. Есть несколько простых вещей (например, отключение перерисовки экрана), которые могут ускорить макросы на несколько порядков. Чтобы создать один PDF-файл, вам нужно будет захватывать выходные данные с каждого шага цикла FOR не как задание на печать, а как предварительную форму, а затем после завершения цикла FOR распечатать весь вывод.
music2myear 5 лет назад
0
1 ответ на вопрос
0
Yorik
Acrobat поддерживает javascript, поэтому вы можете выполнить слияние документов, используя Doc.insertPagesметод acrobat .