Показать сообщение отдельно
Старый 01.11.2004, 12:37     # 2
EvroStandart
Full Member
 
Аватар для EvroStandart
 
Регистрация: 20.01.2004
Адрес: Таллинн
Пол: Male
Сообщения: 623

EvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собойEvroStandart Имеются все основания чтобы гордиться собой
Цитата:
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

Как работает не проверял.
EvroStandart вне форума