Не видя точного рабочего листа, сложно дать точный кусок кода. Однако я недавно сделал рабочую тетрадь с таким же требованием.
В качестве наброска ответа вы могли бы рассмотреть возможность использования цикла для циклического просмотра списка из 15–20 продуктов, помещая каждый из них в ячейку, в которой вы в настоящее время проверяете данные (убедитесь, что сначала вы удалили любую проверку), это будет затем обновите индекс совпадений, а также ваш график.
В этом цикле вы можете включить некоторый код для сохранения листа в формате PDF, прежде чем переходить к следующему продукту (или поместить диаграмму на отдельную таблицу и ссылаться на нее явным образом).
например, если ваша проверка находится на листе A1 таблицы «Таблица», а список продуктов - A2: на листе A20 «Продукты» что-то подобное поможет вам в этом;
Sub save_charts()
Dim i As Long
Dim path As String
Dim product_name As String
Dim ws_name As String
Dim file_name As String
i = 2
path = Application.DefaultFilePath
Do Until Worksheets("Products").Cells(i, 1).Value = ""
If Worksheets("Products").Cells(i, 1).Value <> "" Then
product_name = Worksheets("Table").Cells(1, 1).Value
ws_name = product_name & " Chart"
file_name = path & "\" & ws_name
Worksheets("Table").Cells(1, 1).Value = Worksheets("Products").Cells(i, 1).Value
ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:= _
file_name, Quality:=xlQualityStandard, _
IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:= _
True
End If
i = i + 1
Loop
End Sub
Мне известно, что вы упоминали, что копировали это в слово перед экспортом в формате pdf? Это требование? Поскольку этот код использует только собственный экспорт из Excel в формат PDF.
Надеюсь, это поможет.
Приветствие.