|
こんばんわ、ちゃっぴです。
>しかし、置換対象セルが少ないうちはうまく置換してくれるのですが
>対象セルが数千個に及ぶと置換してくれません。
>私がUBound関数をよく理解できてないからでしょうか?
UBound関数というより、配列まだちょっと理解されていないようですね。
> '置換対象文字列を配列に格納
> vntTarget = Range(myCell2.Address).Value
InputBoxで対象セル範囲を選択させていると思いますが、
これを配列に取り込むと、行と列とで2次元の配列になります。
> '置換処理
> For i = 1 To UBound(vntTarget)
> For j = 1 To UBound(vntList)
> vntTarget(i, 1) = Replace$(vntTarget(i, 1), _
> vntList(j, 1), vntList(j, 2), 1, -1, 0)
> Next j
> Next i
前回では、対象列が1列でしたので、列に対してはループさせていません。
もう、お分かりでしょう?
列に対してもループしてやればいいです。
なお、
> '置換した配列を一括出力
> Range(myCell2.Address).Value = vntTarget
これは非常に無駄な記述ですね。myCell2自体がRangeオブジェクトなので
myCell2.Value = vntTarget
とシンプルにしてやりましょう。
|
|