2017-03-31 15 views
-1

配列内の値の最後の出現のインデックスを返す必要があります。 私はこれを試しましたが、動作しません。私は間違って何をしていますか?VB6を使用して配列の最後の値を返す方法

最後のインデックスではありません。配列内に含まれる特定の値の最後のインデックスを探しています。あなたはこれを試すことができ、この場合には、それは価値の最後のインデックスとなり3を返す必要があり、ゼロベースの配列で「この」

が、これは3

Dim ary() As Variant 
    Dim stg as string 
    stg = "this,one,is,this,going,to,be,fun" 
    ary = Split(stg, ",") 

    MsgBox (ary.LastIndexOf(ary, "this")) 
+0

'UBound()'関数を試してください。あなたはそれを読むことによってそれを見つけることができます。 – Bob77

+0

-_- .. ..こんにちはボブ、最後のインデックスは探していませんが、配列内に含まれる特定の値の最後のインデックスはわかりますか? –

+0

申し訳ありませんが、私はあなたの意図を完全に誤解しました。しかし、あなたが望むなら、要素を列挙し、あなたの目標を見つけるまでテストしなければならない。あなたは 'Filter()'を見ることもできますが、私はそれがあなたが望むものをやっているのか疑問です。 – Bob77

答えて

2

を返す必要があります。 Variant配列から文字列に変更し、FindLast関数を作成しました。

Sub test() 

    Dim ary() As String 
    Dim stg As String 
    Dim i As Integer 

    stg = "this,one,is,this,going,to,be,fun" 
    ary = Split(stg, ",") 

    MsgBox FindLast(ary, "this") 

End Sub 

Private Function FindLast(ary() As String, value As String) As Integer 

    For i = UBound(ary) To 0 Step -1 
    If ary(i) = value Then 
     FindLast = i 
     Exit For 
    End If 
    Next 

End Function 
+0

ちょうど私の最後に同じことを構築しました。私は見つけられない方法を追加しましたが。 –

+0

@ジョンソンジェイソンの道を行く! – Jeremy

+0

助けてくれてありがとう –

関連する問題