|
解決されたようで、もう見ていらっしゃらないかもしれませんが。
>Selection.CurrentRegion.Select
>Selection.End(xlDown).Activate
>i = ActiveCell.Row
だと、正しく最終行がとれますね。
>i = ActiveCell.Row + Selection.Rows.Count -1
は間違ってます。
失礼しました。m(_ _)m
お詫びに、違う書き方で書いてみます。
ちょっと良く解らないところがあるので、そこは想像ですが。
Sub 範囲内で置き換え2()
Dim mr As Range
Dim i As Long
Dim v As Variant
Dim c As Range
v = Cells(2, 3).Resize(14, 2).Value
Set c = Cells(19, 1).CurrentRegion
For i = 1 To 14
For Each mr In c
If mr.Value = v(i, 1) Then mr.Value = v(i, 2)
Next mr
Next i
Erase v
Set c = Nothing
End Sub
ループカウンタはLong型の方が速いそうです。
|
|