1.什么是Option Explicit,以及它的用法?
答:Option Explicit是用来告诉脚本,脚本中所有的变量都应在这里声明(作用更准确应该是:迫使脚本声明变量)
2.动态数组怎么设置?
3.定义一个变量的时候,什么时候用set,什么时候用Dim/Public/Private呢?
答:如果要用变量指定一个对象,则用set定义变量。(用来把一个对象指定给某个变量)
例如:Set UserEditBox = Browser("Mercury Tours").Page("Mercury Tours").WebEdit("username")
UserEditBox.Set "John"
如果变量用来指定一个很简单的值,像字符串或者一个数值时,一般用Dim/Public/Private
例如:Dim passengers
passengers = Browser("Mercury Tours").Page("Find Flights").WebEdit("numpassengers").GetROProperty("value")
4.方法的参数中,什么状态下需要用括号,什么状态下不需要括号?
答:以下情况需要括号: (1)存在返回值给变量的时候,需要括号
例:Set WebEditObj = Browser("Mercury Tours").Page("Method of Payment").WebTable("FirstName").ChildItem (8, 2, "WebEdit", 0)
(2)用call来调用方法时
例:Call RunAction("BookFlight", oneIteration)
(3)如果if状态存在,方法需要括号
例:If Browser("index").Page("index").Link("All kind of").WaitProperty("attribute/readyState", "complete", 4) Then Browser("index").Page("index").Link("All kind of").Click
(4)如果返回的是检查点的值,也需要括号
例:a = Browser("MyBrowser").Page("MyPage").Check (CheckPoint("MyProperty"))
以下情况不需要括号:(1)如果没有返回值
例:Browser("Mercury Tours").Page("Method of Payment").WebTable("FirstName").Click 3,4
5.什么是自动化对象
答:自动化对象就是其它的程序的对象,用来增强脚本的功能
6.for each ..next 与 for..next的区别
答:for each..next。你不需要知道你要循环多少次
for..next,你需要知道你要循环多少次
7.数组怎样初始化?又怎样访问?
答:数组的初始化和访问和c语言差不多,不过目前发现只能用for to ...next来访问。
8.if... then.... end if的用法中出现了问题?不能正常运行
答:具体原因如下:if ...then.... end if必须遵守一定的规则: (1)if 和then必须在同一行
(2)then后面不能写语句,要写必须重新开启一行
(3)在用if..then之后,末尾必须要用end if 结尾
9.vbscript脚本中的错误处理机制是怎样的?
答:当在代码中写入On Error Resume Next后,会启用错误处理机制(也就是On Error Resume Next之后的代码,当出现错误时,系统会跳过错误行,去执行下一 行)
当在代码中写入On Error GoTo 0后,会禁用错误处理机制(也就是On Error GoTo 0之后的代码,当出现错误时,系统会自行处理错误或者提供报错的信息给用 户)
不过在On Error Resume Next和On Error GoTo 0代码之间,你可以自己写一些错误处理机制,来判断程序是执行是否正确
10.vb中方法和事件的区别?
事件是对象(这里的对象几乎都是窗体控件)所执行的一种特有的动作(在有些资料中称动作),例如单击事件、双击事件等等,对于对象不同,对象的事件是有不同的,当然在对象的事件中,有通用事件,这些通用事件几乎涵盖了所有对象,不同的对象也有不同的事件。事件是由一段代码组成,包含在Sub和End Sub中的,在事件中可以完成一系列任务。
方法是对象(这里的对象不仅仅包含窗体控件,也包含一些其他对象)在程序中执行的一种可执行的操作,他仅仅是这个对象的一种可执行的操作,一般是"对象.方法"的语句格式,例如打开、保存等等。
11.vb中属性还存在返回值问题吗?
答:其实是通过对象名而得到属性的值。如何得到属性的值,可以从下面的代码看出
'*************************this is the class******************************************'
Class Myname
Dim a(10)
Dim index
'Initialize class
'here,you can set the value of the vairable
Private Sub Class_Initialize()
For index = 0 To 10
a(index)= index
Next
End Sub
End Class
'***********************this is the main function************************************'
Dim b
Dim a(10)
Dim index
'make the connection to the object of the class
Set b = new Myname
'in order to get the vairable value of the object
a(10) = b.a
'output the variable of the object
For index = 0 To 10
MsgBox "you is the "&CStr(b.a(index))
Next
'cut off the connection to the object
Set b = Nothing
12.vbscript中的错误处理机制
答:如果发生了错误,则Err的值,系统会给它设置为非0.
如果没有错误发生,则Err的值为0
所以我们可以通过Err是否为0来判断是否存在错误的发生。当然也可以自己写一些错误处理的程序
13.在调用函数的时候,曾经出现报错的情况?对于此情况的出现,具体分析如下:
答:1.在Function定义的时候,参数列表的括号必须要紧挨着函数名
2.在函数调用的过程中,如果函数存在返回值,则一定要写成如下的形式:变量名 = 函数名(参数列表)
如果函数没有返回值,则一定要写成:call 函数名(参数列表)
3.如果函数没有返回值,写成了 函数名(参数列表),运行时会报错
14.在函数定义的时候,需要注意以下问题
答:如果函数要返回的值是对象,则在返回值设置时,要用Set 函数名=值,在调用函数的时候,也需要用set 变量名=函数名(参数列表)
如果函数返回值不是对像,则返回值设置时,直接函数名=值,在 调用函数时候,直接用变量名=函数名(参数列表)
15.vbscript中是否存在对象的引用问题?对于这种情况,要在实践中进行讨论
答:函数中传递的是参数是一个对象,就相当于对对象的引用。具体说明可以参考Quote_Object_sample.vbs
16.什么是CScript.exe?什么是WScript.exe?
答:进程文件: cscript.exe
英文描述: Microsoft Console Based Script. Host
进程分析: dos环境下的脚本宿主引擎。
输出方式:控制台输出
进程文件: wscript.
英文描述: Microsoft Windows Script. Host
进程分析:window环境下的脚本宿主引擎
输出方式:窗口输出
17。for循环不能倒序输出数值吗?例如:a(0)=1,a(1)=2,a(2)=3,不能输出321,只能输出123
18.excel的操作中怎样才能关掉"任务管理器"中的"进程"的excel程序呢?如果不关掉,手动打开excel文件的时候,系统会报错
答:"进程"中的程序也是程序,只不过没有在界面中显示而已
关闭excel应用程序的语句是:Application.Quit