在UFT中传递函数数组

时间:2017-08-01 07:44:38

标签: automation hp-uft

我正在尝试在函数中传递数组名称,以便它应该仅根据提到的数组名称执行某些操作。但是我因类型不匹配而收到错误。

Dim oFormPage()
Function GEN_FormLabelCheck(oModuleName,oFormPage)

        Select Case oModuleName
            Case "AA"
                lableList=split("Scenario|Name|Event,"|")
            Case "BB"
                lableList=split("ID|Issue|mandatory?,"|")
            Case "CC"
                lableList_01=split("Name","|")
                lableList_02=split("Work|Category|Type","|")
        End Select
msgbox UBound(oFormPage)

Call GEN_FormLabelCheck("CC",lableList_02)

请建议我犯错的地方?

1 个答案:

答案 0 :(得分:0)

您收到类型不匹配错误,因为您正在尝试msgbox尚未设置的数组的上边界。

您的代码在任何情况下都不会起作用,因为您没有将lableList_02传入和传出函数 - 它在函数本身的范围内是本地的。您需要传递oFormPage,在函数中更新oFormPage并再次将其传回。

这样的东西会起作用,但是您需要传入和传出两个数组才能为CC情况提供两个选项,或者将其放到单个数组输出中。

Dim oFormPage
Call GEN_FormLabelCheck("CC", oFormPage) 
MsgBox UBound(oFormPage)

Function GEN_FormLabelCheck(oModuleName,oFormPage)

        Select Case oModuleName
            Case "AA"
                oFormPage=split("Scenario|Name|Event,"|")
            Case "BB"
                oFormPage=split("ID|Issue|mandatory?,"|")
            Case "CC"
                oFormPage=split("Work|Category|Type","|")
        End Select
End Function

在这种情况下,您可以定义值,您也可以将它们定义为数组,而不是使用split:     oFormPage = Array(" Work"," Category"," Type")

您应该考虑处理输入与Select Case语句中的任何内容不匹配的情况,因此oFormPage不会作为数组从函数中出来,这将再次给你类型不匹配错误。

如果您需要进一步解释,请告诉我?