VBA Excel. Как с помощью цикла изменить несколько однотипных элеметнтов управления?

программирование excel VBA

День добрый!
Имеется довольно большое количество однотипных кнопок с именами типа
button_1_switch
button_2_switch
button_3_switch
...
И другая кнопка, задача которой - по щелчку окрашивать все выше упомянутые в цвет фона единой для всех ячейки.
Сейчас имеет такой код:
button_1_switch.BackColor = Range("D127").Interior.Color
button_2_switch.BackColor = Range("D127").Interior.Color
button_3_switch.BackColor = Range("D127").Interior.Color
button_4_switch.BackColor = Range("D127").Interior.Color

То есть разница между строками - только в номере в имени окрашиваемой кнопки.
Как можно решить такую задачу, например, с помощью цикла? Интересен синтаксис, в VBA я не спец, попробовал вот так:

For i = 1 to 10
button_(i)_switch.BackColor = Range("D127").Interior.Color -- ругается на эту строку
Next

То есть вопрос - как правильно вставить переменную-счетчик цикла в имя кнопки, если это возможно. Или иные пути решения задачи без копирования строки каждый раз.

Примечание:
Не работает, пишет Object doesn't support this property or method

Содержимое кнопки:

For n_color = 1 To 9
ActiveSheet.Shapes("Strength_" & n_color & "_null").BackColor = Range("D296").Interior.Color
ActiveSheet.Shapes("Strength_" & n_color & "_null").ForeColor = Range("D296").Font.Color
ActiveSheet.Shapes("Strength_" & n_color & "_spin").BackColor = Range("D296").Interior.Color
ActiveSheet.Shapes("Strength_" & n_color & "_spin").ForeColor = Range("D296").Font.Color
Next n_color

Переменную n_color пробовал заранее объявлять, результат тот же
Ответы:
Попробуйте так
For i = 1 To 10
   ActiveSheet.Shapes("button_" & i & "_switch").BackColor = Range("D127").Interior.Color
Next i


11 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.