2017-08-01 71 views
0

我想在函数中传递数组名称,以便它应该根据所提到的数组名称进行一些操作。但是我得到类型不匹配的错误。在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) 

请指出我在哪里犯错?

回答

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 =阵列(“工作”,“类别”, “Type”)

您应该考虑处理输入与您的Select Case语句中的任何内容不匹配的情况,因此oFormPage不会以数组的形式出现,这会再次为您提供类型不匹配错误。

让我知道你是否需要任何进一步的解释?