Возникли проблемы с использованием COM Автофильтр на языке AHK - PullRequest
0 голосов
/ 18 февраля 2020

Я могу применить критерии автофильтра, но отфильтрованные строки не видны. Однако, если я перейду к расширенному фильтру go и нажму «ОК» на уже примененном фильтре, результаты появятся. Я не знаю, что происходит, вот код.

    try xl := ComObjActive("Excel.Application")
catch e
{
xl := ComObjCreate("Excel.Application")
}

wb_YTD := xl.Workbooks.Open(A_Desktop "\R&B YTD.xlsx")

if (WinExist("BnR Weekly Counts"))
wb_bnr :=  xl.Workbooks.Item("BnR Weekly Counts")
else
wb_bnr := xl.Workbooks.Open(A_Desktop "\BnR Weekly Counts.xlsx")

wb_YTD.Sheets(1).AutoFilter.Range.Autofilter
FormatTime, current_month, YYYYMMDDHH24MISS, M

criteria1 := "> " current_month "/9/" A_Year
criteria2 := "< " current_month "/11/" A_Year

wb_YTD.Sheets(1).Range("$A$1").AutoFilter(Field := 3,Criteria1 := criteria1, Operator := 1, Criteria2 := criteria2)

Здесь, в столбце 3 содержатся даты, которые я хочу отфильтровать, Criteria1 -> 2/9/2020, а Criteria 2 - <2 / 11/2020 </p>

Спасибо!

1 Ответ

1 голос
/ 18 февраля 2020

Поймал ошибку, эта ошибка была вызвана дополнительным пробелом в критериях ">"

Рабочий код фильтра:

FormatTime, current_month, YYYYMMDDHH24MISS, M ; To store the month count without extra 0
start_date := ">=" current_month "/9/" A_Year
end_date := "<=" current_month "/15/" A_Year

wb_YTD.Sheets(1).Range("A1:F10000").AutoFilter(Field := 3,Criteria1 := start_date, Operator := 1, Criteria2 := end_date)
...