Как я могу переключить фрагмент сводной таблицы в Excel с помощью win32com, Python?Python

Программы на Python
Anonymous
Как я могу переключить фрагмент сводной таблицы в Excel с помощью win32com, Python?

Сообщение Anonymous »

Я пытаюсь переключить фрагмент сводной таблицы с помощью этого кода:

Код: Выделить всё

from win32com.client import Dispatch

EXCEL_APP = Dispatch('Excel.Application')
EXCEL_APP.Visible = True
wb = EXCEL_APP.Workbooks.Open(work_dir + file_name)

wb.SlicerCaches("slice_date1").SlicerItems("16.07.2024").Selected = False
wb.SlicerCaches("slice_date1").SlicerItems("17.07.2024").Selected = True

Объявление переменных скрыто за ненадобностью.
Этот метод выделения среза я подсмотрел, записав макрос VBA и отформатировав его в коде Python.
VBA каким-то образом выполняет две последние команды одновременно, используя блок «With»:

Код: Выделить всё

With ActiveWorkbook.SlicerCaches("slice_date1")
.SlicerItems("16.07.2024").Selected = False
.SlicerItems("17.07.2024").Selected = True
End With
что не вызывает проблем.
Но в Python эти строки будут работать последовательно, независимо от того, в каком порядке они находятся, что, похоже, и вызывает проблемы в моем коде . Я проверил это, вручную попытавшись включить в срез два значения и попытавшись отключить оба, чего Excel мне не позволил сделать.
Ошибка:

Но даже несмотря на то, что я знаю, где и в чем проблема, я не могу найти решение.
Так можно ли одновременно переключать срез с одного значения на другое в Python?
Или есть другой, более подходящий способ?

Подробнее здесь: https://stackoverflow.com/questions/787 ... com-python

Вернуться в «Python»