![]() |
Помогите переделать макрос для Excel.
Текст макроса:
---------------------------------------------------------------------------- Private Sub Worksheet_Change(ByVal Target As Excel.Range) '*********************************************** ' help urllink-doggie-yandex.ru '*********************************************** On Error GoTo Err iClm = Target.Column: iRow = Target.Row iDate = Target.Value If iClm = 1 And iRow >19 And iRow < 301 Then Select Case iDate Case "1" iDate = "Рога и копыта" Case "2" iDate = "Кидалов и сыновья" Case "3" iDate = "ООО Торговый Дом Шелупонь" Case "4" Rem : И так далее ... End Select Application.EnableEvents = False Application.Undo Target.Value = iDate Application.EnableEvents = True End If Err: End Sub ---------------------------------------------------------------------- Вопрос1 А можно этот макрос как нибудь расширить он делает автоподмену только в столбце А а мне нужно чтобы он делал подмену на одном листе но в нескольких столбцах к примеру в А, С, H. Вопрос2 И можно ли в iDate = "" писать не текст а номер ячейки из которой нужно брать значение? |
Цитата:
Цитата:
Вообще, не очень понятно, что именно макрос делает и что нужно. Если нужна одинаковая замена в трёх столбцах, тогда самый простой вариант: Заместо строки (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 Как работает не проверял. |
| Часовой пояс GMT +4, время: 02:34. |
Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.