Код: Выделить всё
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