如何使用Win32 COM python创建和编辑时间线切片器?

如何使用Win32 COM python创建和编辑时间线切片器?,python,excel,vba,win32com,Python,Excel,Vba,Win32com,我正在尝试使用Win32 COM python创建时间线切片器。我目前正在使用win32com操作excel数据,但在数据中,我的客户希望我将时间线切片器的上限和下限设置为某个月。我在谷歌上搜索了很多,我得出了一个结论,我能做到这一点的唯一方法是用VBA编写代码并用类似python的语言实现它。我没有VBA方面的经验,我想知道是否有一种方法可以使用win32com python代替VBA win32com python 编辑: 在Excel中使用“分配宏”后,以下是有关我的时间片的代码: Act

我正在尝试使用Win32 COM python创建时间线切片器。我目前正在使用win32com操作excel数据,但在数据中,我的客户希望我将时间线切片器的上限和下限设置为某个月。我在谷歌上搜索了很多,我得出了一个结论,我能做到这一点的唯一方法是用VBA编写代码并用类似python的语言实现它。我没有VBA方面的经验,我想知道是否有一种方法可以使用win32com python代替VBA win32com python

编辑:

在Excel中使用“分配宏”后,以下是有关我的时间片的代码:

ActiveWorkbook.SlicerCaches("NativeTimeline_Goods_Receipt_Date").TimelineState. _
        SetFilterDateRange "01/01/2020", "30/04/2020"
现在我需要将其更改为python,并将开始日期和结束日期指定为变量。到目前为止,我有:

from win32com.client import Dispatch
excel = win32.gencache.EnsureDispatch('Excel.Application')
test_wb = excel.Workbooks.Open(test_file)
date_sl = test_wb.SlicerCaches("NativeTimeline_Goods_Receipt_Date")

显然,在Excel中,有一个程序可以记录您单击的任何内容。因此,如果您想操作过滤器/切片器,可以右键单击元素,然后选择“分配宏”。然后,您可以在它记录您的单击时单击。完成后,您可以再次选择“分配宏”进行查看,弹出窗口将可用,您可以选择过滤器/切片器名称,单击,它将为您提供VBA代码。您所要做的就是更改它,使其适合python格式

更新了将VBA转换为python代码的答案:

通过引用link,我能够将VBA转换为python代码,并根据您选择的日期调整日期

所以VBA代码是这样的:

ActiveWorkbook.SlicerCaches("NativeTimeline_Goods_Receipt_Date").TimelineState. _
        SetFilterDateRange "01/01/2020", "30/04/2020"
它的python版本是:

excel = win32.gencache.EnsureDispatch('Excel.Application')
excel.DisplayAlerts = False
excel.Visible = True
test_wb = excel.Workbooks.Open(test_file, None, False)
date_sl = test_wb.SlicerCaches("NativeTimeline_Goods_Receipt_Date")
date_sl.TimelineState.SetFilterDateRange("01/01/2020", "30/04/2020")

在我的例子中,我需要根据运行代码的时间等更改要设置的日期,这样我就可以将日期分配给一个变量,并用它替换硬编码的日期。

能否在您尝试执行的操作周围添加一些代码片段?这是非常开放的,如果把它固定在一些具体的代码上,会更容易得到帮助@海盗