Я пытаюсь автофильтировать в Excel, используя приведенный ниже код VBScript. Этот скрипт вызывался несколько раз из программы Perl.Autofiltering Excel с несколькими условиями фильтра
Dim objExcel : Set objExcel = GetObject(,"Excel.Application")
objExcel.Visible = True
objExcel.Selection.AutoFilter
objExcel.ActiveSheet.Range("G1").AutoFilter WScript.Arguments.Item(0), _
WScript.Arguments.Item (1)
Теперь я хотел бы знать: есть ли способ, с помощью которого я могу передать массив для WScript.Arguments.Item (1)
так, что все условия выбираются на одном дыхании? Задача - удалить отфильтрованное значение. Я вызываю этот скрипт через Perl несколько раз, и вышеупомянутый скрипт фильтрует одно значение за раз и удаляет. Программа работает нормально, но работает медленно.
Ниже приведена часть Perl, которая вызывает VBScript.
while(<FILE>){
chomp;
system("CSCRIPT "."\"$currentWorkingDirectory\"".'aboveVBS.vbs 9 '."\"$_\"");
sleep(2);
}
Благодарю вас, приведенный выше код также фильтрует одно значение за раз, я должен отфильтровать все параметры в текстовом файле за один раз ... 'ws.Range (" G1 "). AutoFilter WScript.Arguments (0) , f.ReadLine', в этом случае первый фильтр удаляется после первой итерации. поэтому, наконец, значение в конце текстового файла будет последним фильтром. – Programmer
@Programmer Ваш существующий код делает то же самое, поэтому я предположил, что это то, что вы хотели. Если вы хотите применить все критерии к одному столбцу одновременно: это невозможно. Если вы более подробно рассмотрите метод ['AutoFilter'] (https://msdn.microsoft.com/en-us/library/office/ff193884.aspx) или графический интерфейс AutoFilter, вы заметите, что можете иметь большинство 2 фильтра для одной колонки. –