2012-04-18 6 views
1

For Eachでコレクションを繰り返しています。 ";"で終わる文字列を見つけるたびに、 ";"を削除する必要があります。 (これはcsv-parsingに使用され、私は第三者からの偽のファイルを持っています)。For Eachから値を上書きする

私が行を特定するとき、私はその行の既存の値を上書きする必要があります。 "12;" 「12」である。

このコードは、すべての正しい行を検索しますが、arrAccountsに上書きはありません。

dim con 
For Each con In arrAccounts(x) 
    if Right(con,1) = ";" then 
     dim length 
     length = Len(con) 
     con = Left(con, (length-1)) 
    end if 
next 

何が間違っていますか/間違っていますか?

+1

セミコロンを削除するには、 'output = Replace(input、"; "、" ")'を使用できます。 – ZippyV

答えて

1

唯一のことは、新しい値を配列に再度挿入する必要があると思います。

dim i, con 
for i = 0 to ubound(arrAccounts(x)) ''# for keeping track which item we are looking at 
    con = arrAccounts(x)(i) 
    if right(con, 1) = ";" then 
     con = left(con, len(con) - 1) 
     arrAccounts(x)(i) = con ''# insert the new value back into the array at the same position 
    end if 
next 
+1

あなたがいて、私は直前にそれを理解しました。問題は、渡されたパラメータの代わりにローカル変数に書き込むことでした。 – jvlarsen

+0

よろしくお願いします!いつも問題が解決したらいいですね! –

関連する問題