Forループを実行してバリアント配列内の文字列を検索しています。 StrCompを使用して文字列を比較しています。次の形式で使用している配列。 VBA - StrComp型の不一致または添字が範囲外にある
私は、以下で説明する2つのアプローチを試しました。私はCOL = 0
Function IsInArray(stringToBeFound As String, arr As Variant, col As Integer) As Long
Dim i As Long
' default return value if value not found in array
IsInArray = -1
For i = LBound(arr) To UBound(arr)
If StrComp(stringToBeFound, arr(i, col), vbTextCompare) = 0 Then
IsInArray = i
Exit For
End If
Next i
End Function
第二のアプローチは、私は私がされている
Function IsIn1DArray(stringToBeFound As String, arr As Variant) As Long
Dim i As Long
' default return value if value not found in array
IsIn1DArray = -1
For i = LBound(arr) To UBound(arr)
If StrComp(stringToBeFound, arr(i)) = 0 Then
IsIn1DArray = i
Exit For
End If
Next i
End Function
StrComp関数で不一致を入力するよう指示使用する場合
第一のアプローチは、添字が範囲外であることを返します。過去にIsInArrayとIsIn1DArrayを使用していましたが、このケースでは動作しませんでした。私は文字列 "[TestHeader]"を検索し、そのインデックスを返したいとします。どうしますか?
は機能しません。文字列はセルから来ていません... – peetman