在QTP的DataTable中有三种获取参数值的方法,它们分别是Value方法、RawValue方法和ValueByRow方法。下面将一一阐述这几种方法。
Value
DataTable.Value(paramName, sheetName)
【参数说明】
paramName —— 需要获取的参数名,也就是列名
sheetName —— 需要获取的Sheet的名字,也可以使用常量名,如dtGlobalSheet、dtLocalSheet
通过Value属性获取指定的值是最常用的一种方式。
【举例说明】
首先,我们在QTP的DataTable的Local Sheet中设置参数值,如图所示。
然后运行以下代码:
Msgbox DataTable.Value("Test",dtLocalSheet)
可以看到运行结果为
。
另外,QTP还提供了一种更为简洁的写法,代码如下:
DataTable("Test", dtLocalSheet)
RawValue
DataTable.RawValue(paramName, sheetName)
RawValue与Value的区别:
RawValue方法获取的是原始值,而Value方法获取的是当前值,说明白点,当单元格中有格式要求或者有公式的,RawValue取的是单元格的公式,而Value取的是单元格的值。
【举例说明】
首先,我们在QTP的DataTable的Local Sheet中设置如图所示的参数值。
这里要注意,单元格A1是引用了B1的值。
然后运行以下代码:
Msgbox"Value取的值是:"& DataTable("Test",dtlocalsheet) & vbNewLine _
& "RawValue取的值是:"& DataTable.RawValue("Test", dtlocalsheet)
可以看到运行结果为:
。
当我们使用QTP读取Excel文件时,可以根据不同的需要,灵活运用Value和RawValue方法。
ValueByRow
DtParameter.ValueByRow(rowNum)
【参数说明】
rowNum —— 指定的行号(从1开始)
【举例说明】
首先,我们在QTP的DataTable的Local Sheet中设置如图所示的参数值。
然后运行以下代码:
MsgBox DataTable.LocalSheet.GetParameter("Test").ValueByRow(3)
可以看到运行结果为:
,取到了第三行的值。
通过这种方法,可以不用以设置当前行(SetCurrentRow)的方式来取值。
原文:http://blog.csdn.net/snakeshiy/article/details/7222157