如果 VBScript 语句结构违反了一个或多个 VBScript 脚本语言语法规则,就会产生 VBScript 语法错误。VBScript 语法错误通常在执行程序前,编译程序时产生。
| ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
内存不足 分配与该计算机有效内存一样多的内存。这可能是一个动态分配数组增长得太大,或者是对象实例数目过多。 要纠正该错误
语法错误 创建的语句中违反了VBScript的语法规则。 要纠正该错误
需要 '(' 当创建过程说明时未包含开括号“(”, Sub foo x // x需要使用圆括号括起来。 End Sub 或使用redim 语句。 Redim x // x需要使用圆括号括起来。 要纠正该错误
需要 ')' 试图封装一套括号中的表达式,但未包含闭括号“)”。必须用一套开括号和闭括号封装一些表达式。 要纠正该错误
需要标识符 使用VBScript 保留词作为变量名称。 要纠正该错误
需要 '=' 使用Set 语句,但未包含=。 要纠正该错误
需要 'If' 创建了一个If...Then...Else 块,但未正常结束块。块语句If 必须为一行的第一个语句,且必须以End If 结束。下面演示了一个If...Then...Else块 的正确结构。 If condition Then 要纠正该错误
需要 'To' 创建一个For...Next 循环,但没有在第一行中包含关键词To。一个For...Next循环 的第一行必须包含关键词To 。下面演示了一个For...Next 循环的正确结构。 For counter = start To end [Step step] 要纠正该错误
需要 'End' 创建结构但未正常结束。下表列出了必须以End语句结束的结构。
要纠正该错误
需要 'Function' 创建一个Function过程,但是以关键词End结束, 而不是以End Function 语句结束。一个Function过程必须包含结束语句End Function 。 要纠正该错误
需要 'Sub' 创建了一个Sub 过程,但是使用关键字End结束而不是使用End Sub 语句终止。一个Sub过程必须包含一个End Sub终止语句。 要纠正该错误
需要 'Then' 创建了一个If...Then...Else结束,但在第一行中为包含关键字Then。下面的代码演示了If...Then...Else 结构的正确使用。 If condition Then statements [Else elsestatements ] 或者可以使用块形式语法: If condition Then [statements] [ElseIf condition-n Then [elseifstatements]] . . . [Else [elsestatements]] End If 要纠正该错误
需要 'Wend' 创建了一个While...Wend 循环,但是没有正确终止循环。一个 While...Wend 循环必须使用语句Wend 来终止。下面演示了一个While...Wend 循环的正确结构。 While condition 要纠正该错误
需要 'Loop' 创建了一个Do 循环结构,但未正常中断循环。Do 循环结构与Loop 语句相关联结束。下面演示了Do 循环结构的正确使用。 Do [{While | Until} condition] 或者可以使用下面的语法: Do 要纠正该错误
需要 'Next' 创建了一个For...Next 循环结构,但未正常结束循环。一个For...Next 循环结构必须以一个Next语句结束。下面演示了一个For...Next 循环结构的正确结构。 For counter = start To end [Step step] 要纠正该错误
需要 'Case' 创建Select...End Select 构造,但未包含任何Case语句。下面演示了Select...End Select 构造的正确使用方法。 Select Case testexpression 要纠正该错误
需要 'Select' 创建了一个Select...End Select 结构,但未包含结束语句End Select 。下面演示了Select...End Select 结构的正确使用方法。 Select Case testexpression 要纠正该错误
需要表达式 创建一个Select...End Select结构,但包含一个Case分句。Case Else语句(失败的情况)必须在它自己那一行出现。下面演示了Select...End Select 结构的正确使用。 Select Case testexpression 要纠正该错误
需要语句 作为参数传递给Execute语句的字符串无法被解析为一个语句。Execute语句不能被用来动态执行VBScript代码。例如,考虑如下的 VBScript代码。 Execute "msgbox 1" '因为msgbox是一个语句,所以有效。 不仅仅是Execute和Eval ,在任何需要一个语句的脚本代码的编译过程中也产生Expected statement错误。例如,如下代码在Internet Explorer 中造成这个错误, <html> 注意这里有两个在VBScript中不同且无关的语句,
要纠正该错误
需要语句的结束 在语句结尾外出现文字。 要纠正该错误
需要整数常数 试图在Dim 语句中使用非常数创建一个数组。在VBScript中,Dim 语句中大小值必须为一个常数。例如, Dim a(10) ' 有效。 要纠正该错误
需要 'While' 或 'Until' 创建了一个Do循环,但是未包含相关的While 或 Until 关键词。一个Do 循环的测试条件需要在测试条件语句中使用一个While或Until 关键词。下面演示 一个Do 循环的正确结构。 Do [{While | Until} condition] 或者可以使用语法: Do 要纠正该错误
需要 'While'、'Until' 或语句结束 创建了一个Do循环,但是未包含相关的关键词While 或 Until。一个Do 循环的测试条件需要在测试条件语句中使用一个While或Until 关键词。下面演示了 一个Do 循环的正确结构。 Do [{While | Until} condition] Or, you can use this syntax: Do 要纠正该错误
需要 'With' 创建了一个With块,但是以关键词End而不是语句End With 结束。一个 With 块必须使用一个End With 语句结束。下面演示了With块的正确组成。 With object 要纠正该错误
标识符太长 创建了一个包含态多字符的变量或函数名称。限制为255个字符。 要纠正该错误
无效数字 表达式的一个值太大或超出范围。 要纠正该错误
无效字符 在一个表达式中试图使用双字节字符集(DBCS)或其他不被支持的字符。 要纠正该错误
未终止字符串常数 没有用封闭的引号来结束字符串常数。字符串常数必须用一对引号来封闭。 要纠正该错误
无效使用关键词 'Me' 试图使用Set给标识符 Me赋值。Me是一个被保留的标识符,且不能被设定。 要纠正该错误
'loop' 没有 'do' 创建了一个Do 循环,但未正确地建立循环。Do 循环以Do语句开始。下面演示了一个Do 循环的正确结构。 Do [{While | Until} condition] 或者可以使用这个语法: Do 要纠正该错误
无效 'exit' 语句 在以下程序控制结构之一中使用了Exit 语句:
仅在如下结构中可以合法使用Exit 语句来退出:
要纠正该错误
无效 'for' 循环控制变量 创建了一个For...Next循环。换句话说,可能在For...Next中使用了一个非法的控制变量。下面的代码演示了一个For...Next 循环的正确结构。 For counter = start To end [Step step] 要纠正该错误
名称重定义 声明了一个在脚本其他地方已经使用的名称。 要纠正该错误
必须为行的第一个语句 代码的多语句行包含了一个If...Then...Else 语句, 但If...Then...Else 语句不是改行的第一个语句。If...Then...Else 语句必须为行的第一个语句。 要纠正该错误
调用 Sub 时不能使用圆括号 未使用Call调用子程序,但是使用了圆括号()。当不使用Call 语句调用子程序时,不要使用圆括号。 要纠正该错误
需要文字常数 声明常数,但是赋予其变化的表达式(可以变化的值)。常数不能包含运行时代码。 要纠正该错误
需要 'In' 创建一个For Each...Next 块,但在第一行未包括关键词In 。下面演示了For Each...Next 块的正确结构。 For Each element In group 要纠正该错误
需要 'Class' 创建一个Class 过程,但是以关键词End结束,而不是使用语句End Class。通常使用End Class语句结束Class 过程。 要纠正该错误
必须在一个类的内部定义 创建了一个 Property 过程(Property Let, Property Set,或 Property Get), 但是在 Class 定义的外部进行了定义。只能在同一类里面创建 Property 过程。 要纠正该错误
在属性声明中需要 Let或 Set 或 Get 创建了一个Property Let, Property Set,或 Property Get 语句,但未包含关键词Let, Set, 或 Get。Property 语句后面必须带Let,Set,或 Get。 要纠正该错误
需要 'Property' 创建了一个Property 过程(Property Let,Property Set,或Property Get), 但未使用End Property 语句结束过程。Property过程必须以End Property语句结束。 要纠正该错误
参数数目必须与属性说明一致 所说明的参数数目太少了。当使用Property Let 或 Property Set,参数数目必须比相应的Property Get 返回的数字大1。 要纠正该错误
在类中不能有多个缺省的属性/方法 在类定义中标记了多于一个的缺省属性或方法。在类中只能有一个缺省的属性和方法。 要纠正该错误
类初始化或终止不能带参数 类定义带有Class_Initialize事件或Class_Terminate 事件。这些过程有一个或更多的参数。不要给这些过程指定参数。 要纠正该错误
Property Set 或 Let 至少应该有一个参数 说明了一个没有参数的类的 Set 或 Let 句柄的访问者。 要纠正该错误
不需要 'Next' 创建了一个For...Next 或者For Each...Next 构造,但没有包含For语句。例如,在试图去掉For...Next构造时保留了Next语句。下面演示了For...Next构造的正确用法。 For counter = start To end [Step step] 要纠正该错误
只能在 Property Get 中指定 'Default' 对Property Let 或 Property Set 使用了保留字 Default。只能对 Property Get 指定保留字 Default 。 要纠正该错误
|
|