2017-08-01 9 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ケースの2つのオプションを持つか、それを1つの配列出力にドロップするには、2つの配列を渡す必要があります。

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 =アレイ(「仕事」、「カテゴリ」、 「タイプ」)あなたが入力あなたのSelect Case文では何も一致していないと、結果としてoFormPageが再びあなた与える配列としての機能の出ていない場合の取り扱いを検討してください

タイプミスマッチエラーです。

詳しい説明が必要な場合は教えてください。