Назначить инициированный код нескольким изображениям – Excel VBA

Я хотел назначить некоторые конкретные действия при нажатии на одно из изображений, которые я вставил на листе Excel. Проблема в том, что у меня есть 52 изображения (покерные карты для тех, кто задается вопросом). Итак, мой вопрос: есть ли способ избежать написания кода для 52 случаев и найти способ, как показано ниже:

Private Sub Image(x)_Click() Call common_subroutine(x) End Sub 

, Вместо того, чтобы писать то же самое 52 раза, по одному для каждого другого имени изображения? Поскольку я использую одну и ту же подпрограмму для выполнения работы с переменной в соответствии с ситуацией, загрузка работы не будет такой большой, если не будет никакого способа это сделать, но это, безусловно, беспокоит меня, является ли этот явно глупый способ единственным возможное.

Я несколько раз сталкивался с этой проблемой при программировании пользовательских форм. К сожалению, я никогда не нашел способ обойти создание триггера для каждого объекта по отдельности. Тем не менее, я действительно думал использовать Python для печати фактического кода, который я мог бы затем вставить в пользовательскую форму VBA. Не нужно, чтобы нудный номер менялся таким образом. (Я полагаю, вы могли бы это сделать и в VBA, но удачи в этом можно сделать в одной строке).

Цикл Python ниже будет работать для примера, который вы опубликовали.

 for i in range(52): print "Private Sub Image%d_Click()\n\tCall common_subroutine(%d)\nEnd Sub\n" % (i + 1, i + 1) 

Просто запустите из командной строки и скопируйте вывод.

Хорошо, я немного запутался в вашем примере VBA, но лучший способ сделать это – выбрать все снимки, щелкнуть правой кнопкой мыши – назначить макрос.

Это присвоит тот же макрос всем выбранным снимкам.

Да. Дайте каждому изображению одно и то же имя и другой индекс. Теперь вы можете ссылаться на этот объект как на целую коллекцию и выбирать изображение по любому указателю.

  • Недоступен программный доступ к проекту Visual Basic
  • VBA Macro для сравнения всех ячеек двух файлов Excel
  • Как сделать переменные Excel VBA доступными для нескольких макросов?
  • Цикл через таблицы Excel
  • Редактор VBA автоматически удаляет пробелы на концах строк
  • Могу ли я перебирать все электронные письма Outlook в папку, включая подпапки?
  • Выполнить панель состояния Excel?
  • Защита ячеек в Excel, но они могут быть изменены сценарием VBA
  • Создание документов Word (в Excel VBA) из серии шаблонов документов
  • Не удалось получить название продуктов с веб-страницы, зашифрованной в javascript
  • VBA - как условно пропустить итерацию цикла for
  • Interesting Posts

    Как удалить каталоги с путями / именами слишком долго для обычного удаления

    Разметка Android сломана с фоном 9 патчей

    Как хранить дату и время и временные метки в часовом поясе UTC с JPA и Hibernate

    Общий объект данных между сервисом WCF и приложением Silverlight

    C ++ итерации во nested поле struct с boost fusion adapt_struct

    Не удается открыть конфигурацию маршрутизатора DWR-112

    Блокировка объявлений наведите курсор

    IE 11 Missing F12 Developer Tools

    Как я могу написать задание cron, которое заблокирует мой интернет с 7 вечера до 7 утра? (Так что я могу немного поспать)

    Построение нескольких временных рядов на одном и том же участке с использованием ggplot ()

    Как (де) создавать кадры данных в WebSockets hybi 08+?

    Преобразование общего списка в строку CSV

    PhantomJS как веб-работа в Azure

    Шаблон Loaner в Scala

    Каковы значения верхнего, левого, болотного или правого значения по умолчанию, когда используется позиция: абсолютная?

    Давайте будем гением компьютера.