Имеется максимально упрощенный пример. Необходимо именованный диапазон "квартал 1" выводить на печать и преобразовывать в pdf (имя файла в ячейке) через чекбоксы. То есть открываем одну из форм по нажатию кнопки, выбираем квартал, в данном примере он только один, а затем адрес. Выводить надо только выбранные. В общем надо макросом изменять адрес на срезе, а потом его выводить. Срез нужен обязательно, ибо в реальном файле он меняет сразу 3 сводные таблицы, построенные по модели данных. У самого не особо получается это реализовать, как я понял, самый простой способ через цикл, который проверяет чекбоксы на активацию, но как к ним привязать сам адрес среза без понятия. Пример цикла вот такой.
Dim a As Excel.OLEObjectWith Sheet1
For Each a In .OLEObjects
If InStr(a.Name, "CheckBox") Then .OLEObjects(a.Name).Object.Value = True
Next a
End With
Dim a As Excel.OLEObjectWith Sheet1
For Each a In .OLEObjects
If InStr(a.Name, "CheckBox") Then .OLEObjects(a.Name).Object.Value = True
Next a
End With