Хотелось бы просить Вас о помощи в разрешения затруднения с которым я столкнулся при написании макроса. Для Вас задача, скорее всего покажется тривиальной, но не судите строго, я начал пользоваться VBA только недавно и еще много предстоит узнать и изучить.
Итак собственно в чем трудность: написал я макрос который должен выбирать определенные знаки в строке (с 6 по 10), и в зависимости от состава этих знаков выводится информация в соседний столбец. Думаю лучше показать макрос (так же прикладываю пример в файле): [vba]
Код
Sub Макрос() Dim a As String a = Mid(Range("B6"), 6, 4) If a = "2615" Then Range("C6") = "т" ElseIf a = "361B" Then Range("C6") = "а" ElseIf a = "1615" Then Range("C6") = "б" ElseIf a = "161B" Then Range("C6") = "в" ElseIf a = "2617" Then Range("C6") = "г" ElseIf a = "261F" Then Range("C6") = "д" ElseIf a = "G61F" Then Range("C6") = "е" End if End sub
[/vba]
Макрос вполне себе рабочий, но нужно этот макрос растянуть на динамический диапазон (столбец C в примере). И вот здесь то я и столкнулся с проблемой. Как растянуть макрос записанный для конкретной ячейки я знаю. А вот здесь, к сожалению никак не могу справиться. Понимаю что скорее всего нужно применить цикл: For... Next. Но мои попытки это сделать не увенчались успехом.
Если у кого то есть представления что необходимо предпринять, буду благодарен за помощь)
Приветствую Вас всех, уважаемые форумчане!
Хотелось бы просить Вас о помощи в разрешения затруднения с которым я столкнулся при написании макроса. Для Вас задача, скорее всего покажется тривиальной, но не судите строго, я начал пользоваться VBA только недавно и еще много предстоит узнать и изучить.
Итак собственно в чем трудность: написал я макрос который должен выбирать определенные знаки в строке (с 6 по 10), и в зависимости от состава этих знаков выводится информация в соседний столбец. Думаю лучше показать макрос (так же прикладываю пример в файле): [vba]
Код
Sub Макрос() Dim a As String a = Mid(Range("B6"), 6, 4) If a = "2615" Then Range("C6") = "т" ElseIf a = "361B" Then Range("C6") = "а" ElseIf a = "1615" Then Range("C6") = "б" ElseIf a = "161B" Then Range("C6") = "в" ElseIf a = "2617" Then Range("C6") = "г" ElseIf a = "261F" Then Range("C6") = "д" ElseIf a = "G61F" Then Range("C6") = "е" End if End sub
[/vba]
Макрос вполне себе рабочий, но нужно этот макрос растянуть на динамический диапазон (столбец C в примере). И вот здесь то я и столкнулся с проблемой. Как растянуть макрос записанный для конкретной ячейки я знаю. А вот здесь, к сожалению никак не могу справиться. Понимаю что скорее всего нужно применить цикл: For... Next. Но мои попытки это сделать не увенчались успехом.
Если у кого то есть представления что необходимо предпринять, буду благодарен за помощь)Max16
К сожалению не добавил теги при создании темы - моя ошибка( Но обещаю - исправлюсь!
Буду Вам крайне признателен, если Вы поможете с решением моего затруднения. P.S. (пол дня просидел, так и не смог сделать). Нужно конкретнее взяться за VBA
Добрый вечер, KuklP
К сожалению не добавил теги при создании темы - моя ошибка( Но обещаю - исправлюсь!
Буду Вам крайне признателен, если Вы поможете с решением моего затруднения. P.S. (пол дня просидел, так и не смог сделать). Нужно конкретнее взяться за VBAMax16
Благодарю Вас за помощь! Оба варианта являются рабочими !
С обоими кодами я разобрался (попутно изучив несколько функций). С массивами я плохо справлялся, но думаю что еще некоторое время покопаюсь, по решаю примеры, буду чувствовать себя уверенней.
Еще раз спасибо за пути решения моей проблемы! Для меня это еще и необходимые знания ))
Уважаемые: KulkIP и RAN!
Благодарю Вас за помощь! Оба варианта являются рабочими !
С обоими кодами я разобрался (попутно изучив несколько функций). С массивами я плохо справлялся, но думаю что еще некоторое время покопаюсь, по решаю примеры, буду чувствовать себя уверенней.
Еще раз спасибо за пути решения моей проблемы! Для меня это еще и необходимые знания ))