Search code examples
vbavbscriptautomationanywhere

Using VBS Script in AAE and getting 1024 Expect Statement


I am new to coding in VBS and all the time I am getting 1024 Expect Statement Error in my VBScript. If anyone could point me where is a mistake I would be gratefull.

Dim Path
Dim BeginDate
Dim EndDate
Path = WScript.Arguments.Item(0)
BeginDate = WScript.Arguments.Item(1)
EndDate = WScript.Arguments.Item(2)
Set objExcel = CreateObject("Excel.Application")
Set objWorkBook = objExcel.Workbooks.Open(Path)
objExcel.Visible = True
Worksheets("PO Buy Update").Range("H3").AutoFilter Field:=8, Criteria1:="<>"
Worksheets("PO Buy Update").Range("Q3").AutoFilter Field:=17, Criteria1:="<>"
Worksheets("PO Buy Update").Range("P3").AutoFilter Field:=16, Criteria1:=">=" & BeginDate, Operator:=xlAnd, Criteria2:="<=" & EndDate

Till filtering part everything goes correct. When I try to run filtering part as a Macro in Excel it works but when I am implementing it into Script it throws me an error.


Solution

  • In VBScript, you don't have to mention the name of the parameters while calling a function/method. You just need to pass the values. The parameters names are required in excel-vba, not in VBScript.

    So, try replaying,

    Worksheets("PO Buy Update").Range("H3").AutoFilter Field:=8, Criteria1:="<>"
    Worksheets("PO Buy Update").Range("Q3").AutoFilter Field:=17, Criteria1:="<>"
    Worksheets("PO Buy Update").Range("P3").AutoFilter Field:=16, Criteria1:=">=" & BeginDate, Operator:=xlAnd, Criteria2:="<=" & EndDate
    

    with

    Worksheets("PO Buy Update").Range("H3").AutoFilter 8,"<>"
    Worksheets("PO Buy Update").Range("Q3").AutoFilter 17,"<>"
    Worksheets("PO Buy Update").Range("P3").AutoFilter 16,">=" & BeginDate,1,"<=" & EndDate
    

    Reference to the Autofilter Method

    Reference to the enumerated constant xlAnd