テストケースを正しく実行するのに問題があります。
問題は以下のコードにあります。正確には最初のifステートメントです。 QTPはオブジェクトが必要であると文句を言います
For j=Lbound(options) to Ubound(options)
If options(j).Contains(choice) Then
MsgBox("Found " & FindThisString & " at index " & _
options.IndexOf(choice))
Else
MsgBox "String not found!"
End If
Next
配列を確認すると、正しく入力されており、「j」も正しい文字列であることがわかります。この問題についての助けをいただければ幸いです。
VBScriptの文字列は、メンバー関数を持たないという点でオブジェクトではありません。部分文字列の検索は、 InStr
関数を使用して実行する必要があります。
For j=Lbound(options) to Ubound(options)
If InStr(options(j), choice) <> 0 Then
MsgBox("Found " & choice & " at index " & j
Else
MsgBox "String not found!"
End If
Next
@ gbonetti-次の例では、コードは「Found」を返します。 @GiacomoLacavaが言った理由によると思います。
a = Array("18")
If Ubound(Filter(a, "1")) > -1 Then
MsgBox "Found"
Else
MsgBox "Not found!"
End If
Function CompareStrings ( arrayItems , choice )
For i=Lbound(arrayItems) to Ubound(arrayItems)
' 0 - for binary comparison "Case sensitive
' 1 - for text compare not case sensitive
If StrComp(arrayItems(i), choice , 0) = 0 Then
MsgBox("Found " & choice & " at index " & i
Else
MsgBox "String not found!"
End If
Next
End Function