Ожидаемая ошибка компиляции VBScript с объектом сортировки Excel - PullRequest
0 голосов
/ 04 июня 2018

Когда я пытаюсь выполнить свой VBScript, используя эту строку кода (которая взята из собственных документов Microsoft), я получаю следующую ошибку:

Microsoft VBScript compilation error Expected statement
IActiveScriptSite::OnScriptError()
Line:              .SortFields.add Key:=Range("E2:E11"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal

Вот код:

 With xlWorkSheet.Sort 
            .SortFields.Clear 
            .SortFields.Add Key:=Range("E2:E11"), SortOn:=xlSortOnValues, Order:=xlAscending, DataOption:=xlSortNormal 
            .SetRange Range("A2:A11")
            .Header = xlYes 
            .MatchCase = False 
            .Orientation = xlTopToBottom 
            .SortMethod = xlPinYin 
            .Apply 
        End With 

Взято из Документы Microsoft

После включения предложений Рори, следующий код теперь выдает ошибку времени выполнения "недопустимый вызов процедуры или аргумент"

 With xlWorkSheet.Sort 
        .SortFields.Clear 
        .SortFields.Add xlWorkSheet.Range("E2:E10"), 0, 1, ,0 
        .SetRange xlWorkSheet.Range("A2:A10")
        .Header = 2 
        .MatchCase = False 
        .Orientation = 0 
        .SortMethod = 0 
        .Apply 
    End With 

1 Ответ

0 голосов
/ 04 июня 2018

VBScript не имеет именованных аргументов.Вы должны указать их по положению и удалить именованные части.

.SortFields.Add xlworksheet.Range("E2:E11"), xlSortOnValues, xlAscending, , xlSortNormal

Я предполагаю, что вы где-то объявили константы.Если нет, то либо сделайте это, либо используйте буквальные значения:

.SortFields.Add xlworksheet.Range("E2:E11"), 0, 1, , 0

Обратите внимание, что вы должны оставить пробел для отсутствующего аргумента DataOption, который вы не предоставляете.

...