Цитата:
Rubin:
Private Sub Worksheet_Change(ByVal Target As Excel.Range)
|
В эту процедуру передаётся адрес, в котором и происходит замена. Чтобы он искал и трёх столбцах, нужно зделать другой макрос.
Цитата:
Rubin:
iClm = Target.Column: iRow = Target.Row
|
Это и есть адрес ячейки, только в двух частях. iClm=1 - это первый столбец (А).
Вообще, не очень понятно, что именно макрос делает и что нужно. Если нужна одинаковая замена в трёх столбцах, тогда самый простой вариант:
Заместо строки (If iClm = 1 And iRow >19 And iRow < 301 Then ) написать
iClm = 1 ' столбец "А"
If iRow >19 And iRow < 301 Then
' тут дальше всю замену
Range("A"&iRow).Value = iDate 'Вместо Target.Value = iDate
End If
iClm = 2 ' столбец "B"
If iRow >19 And iRow < 301 Then
' тут дальше всю замену
Range("B"&iRow).Value = iDate 'Вместо Target.Value = iDate
End If
iClm = 3 ' столбец "C"
If iRow >19 And iRow < 301 Then
' тут дальше всю замену
Range("C"&iRow).Value = iDate 'Вместо Target.Value = iDate
End If
Как работает не проверял.