在pyWin32中设置自动筛选条件

我可以使用pyWin32build立一个自动filter,但我想知道是否可以设置一个默认的filter和语法是什么。

例如,我想在一年的列上设置一个filter,并设置当年的默认值。

xl = Dispatch("Excel.Application") xl.Workbooks.Open(file_path) xl.ActiveWorkbook.Worksheets(sheetname).Range("A2:A6").AutoFilter(1) xl.ActiveWorkbook.Close(SaveChanges=1) 

我已经在网上寻找pywin32和微软网站的文档,但不能解决如何将MS语法翻译成pywin32

 Range("A2:A6").AutoFilter Field:=1, Criteria1:=rng.Value 

我遇到了同样的问题,经过一番实验后,我发现可以在Columns属性上设置一个范围。 由于我想在列A到I上进行自动筛选,因此我设置了以下标准:

xl.ActiveWorkbook.ActiveSheet.Columns("A:I").AutoFilter(1)

这对我有效。 我假设你想过滤列B到F,因为AutoFilter只为列启用。 也许以下标准适用于您:

xl.ActiveWorkbook.ActiveSheet.Columns("B:F").AutoFilter(1)

阿洛克

相当神秘的文档可在: http : //msdn.microsoft.com/en-us/library/office/bb242013( v=office.12) .aspx 。

每个Excel VBA参数都转换为pywin32中的函数参数。 例如,如果要过滤所有不等于“2012”的年份,则可以通过指定Criteria1参数来执行此操作,如下所示:

 MyYearRange.AutoFilter(Field=1, Criteria1="2012")