Форум по VBA и MS Office

VBA, Excel => VBA, макросы в Excel => Тема начата: Посетитель от 24 августа 2023, 17:09

Название: Динамический вызов функции "Sub Text"
Отправлено: Посетитель от 24 августа 2023, 17:09
Возможно ли реализовать следующую задумку?
- имеется 12 функций r, rs, l, ls и другие названия (неважно).
- имеется динамический столбик с названиями этих функций (т.е. в каждой строке столбика содержится какое-то название функции (r, rs, l, ls и т.д.)).
- Стиль ссылок R1C1.

В моей голове код выглядит следующим образом:

Dim x As Integer
x = 1
    While Cells(x, 1) <> ""
       Call Cells(x, 1).Text
       x = x + 1
    Wend

Четвертая строчка подразумевает, что в ячейке А1 лежит название функции, которую нужно выполнить в данный момент.
Данный код должен выполнить все функции, которые записаны в столбец.

При попытке выполнить код, он ругается на строку "Call Cells(x, 1).Text" я на 100% уверен что я как-то не правильно пишу строку, а как правильно написать я не знаю.
Выручайте.
Название: Динамический вызов функции "Sub Text"
Отправлено: Администратор от 24 августа 2023, 17:14
На первый взгляд в команду Call нельзя ничего подставить, кроме имя процедуры.
Я подразумеваю, что имя процедуры должно быть явно записано, а не находиться в переменной.
Название: Динамический вызов функции "Sub Text"
Отправлено: Посетитель от 24 августа 2023, 17:19
как тогда можно вызвать нужные мне функции (если не пользоваться командой Case)?
Название: Динамический вызов функции "Sub Text"
Отправлено: Администратор от 24 августа 2023, 17:26
На первый взгляд никак - только с использованием If...Then или Select Case.
Название: Динамический вызов функции "Sub Text"
Отправлено: Посетитель от 24 августа 2023, 17:34
Понял, спасибо.
Дальше вопрос для других пользователей:
Если ты читаешь эту переписку и знаешь другой выход из данной ситуации, то я буду рад узнать о другом способе. (думаю, что еще пару дней я точно послежу за этим вопросом)