我在下面写了这个函数。但是,我一直在QTP中获得无效的函数参数。 该对象是webtable中的一个链接,我不断收到“该语句包含一个或多个无效函数agrument”的错误消息。 有谁可以帮助我吗?
Function CheckData(Value_To_Match, Rpttext, ByRef Row_Num)
Dim tab_val, arr_val(2), rowNum
tab_val = Split(Value_To_Match,";")
arr_val(0) = Browser("xyz").Page("abc").WebTable("xsw").getColumnIndex(tab_val(0))
If UBound(tab_val ) > 0 Then
arr_val(1) = tab_val(1)
arr_val(2) = Browser("xyz").Page("abc").WebTable("xsw").getMatchingRow(arr_val)
Row_Num = arr_val(2)
Browser("xyz").Page("abc").WebTable("xsw").MatchVal arr_val, Rpttext, "Verify"
Else
arr_val(1) = tab_val(0)
arr_val(2) = Browser("xyz").Page("abc").WebTable("xsw").getMatchingRow(arr_val)
Browser("xyz").Page("abc").WebTable("xsw").MatchVal arr_val, Rpttext, "Verify"
arr_val(2) = Row_Num
Browser("xyz").Page("abc").WebTable("xsw").MatchVal arr_val, Rpttext, "Check"
End If
End Function
If Trim(Parameter("DraftsViewDraftIcon")) <> "" And _
LCase(Trim(Parameter("DraftsViewDraftIcon"))) <> "[null]" And _
LCase(Trim(Parameter("Wrapper_Mode"))) ="set" Then
Set ViewDraftLink = Browser("xyz").Page("abc").WebTable("xsw").ChildItem(Row_Num, 4, "Link", 0)
ViewDraftLink.click
End If
此功能用于获取匹配的行
Public Function getMatchingRow(byRef object, byVal arraydata)
Dim introw
Dim varComp
On Error Resume Next
If UBound(arraydata) = 0 Then
Reporter.ReportEvent micFail, "Array Data", "No Data found in input parameter Array"
getMatchingRow = 0
Exit Function
End If
For introw = 1 to object.RowCount
varComp = StrComp(Trim(object.GetCellData(introw, arrayData(0))), Trim(arrayData(1)), 0)
If varComp = 0 And Not(isNull(varComp)) Then
getMatchingRow = introw
Exit Function
End If
Next
getMatchingRow = 0
On Error Goto 0
答案 0 :(得分:0)
如果要将getMatchingRow
函数注册为方法,则第一个正式参数必须是byVal
参数:
Public Function getMatchingRow(byVal object, byVal arraydata)
您正在使用byRef
参数:
Public Function getMatchingRow(byRef object, byVal arraydata)
这可能会导致您遇到的麻烦。
我现在没有机会验证这一点,但无论如何都请尝试一下。
(我对我的这个答案有一些疑问,特别是因为你说错误行是Set ViewDraftLink
作业,而它应该在.getMatchingRow
调用时发生。但你也提到{{该评论中有1}}和ViewDraftLink.Click
行,所以无论如何你在这方面都是不确定的。
如果您将所有这些信息合并到问题中,进一步清理问题中的代码,并删除当时过时的评论,这确实会有所帮助。)