Страницы: 1
RSS
Имя функции в переменной
 
Добрый день.
С недавнего времени пытаюсь познать магию vba.
Возможен ли такой вариант вызова функции, когда её имя записано в переменной?

Файл прилогается.
Изменено: bob1010 - 14.09.2019 13:32:51
 
bob1010, код следует оформлять соответствующим тем: ищите кнопку <...> и исправьте своё сообщение.
 
а
Код
Select Case Target.Address
не поможет?
Соблюдение правил форума не освобождает от модераторского произвола
 
В моём случае Target.Address пустой.
Если упростить задачу, хотелось бы:
Код
Dim nameFunction as string
nameFunction = "test"                                          ' Имя функции
main.nameFunction                                              ' Вызов функции из модуля main

Возможно ли это?
 
в Лист1
Код
' Модуль листа (Лист1)
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
        Application.Run "main." & Target.Name
End Sub
в main
Код
 ' Модуль main
Public Sub Сформировать()
    '.............. код
End Sub
Public Sub Загрузить()
    '.............. код
End Sub
 
Андрей Лящук,Спасибо большое, ваш вариант работает. Супер.
Заточил под себя. Но.
в модуль эта книга
Код
Private Sub Workbook_Open() 
     With ThisWorkbook.Worksheets("Лист1")                   ' Востановить ссылки при загрузке    
         .Hyperlinks.Add Anchor:=Range("B1"), Address:="", SubAddress:="Лист1!B1", TextToDisplay:="Сформировать"    
         .Hyperlinks.Add Anchor:=Range("D1"), Address:="", SubAddress:="Лист1!D1", TextToDisplay:="Загрузить"    
         .Hyperlinks.Add Anchor:=Range("E1"), Address:="", SubAddress:="Лист1!E1", TextToDisplay:="Загрузить" 
    End With End Sub 
модуль лист1
Код
Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    Application.Run "main." & Replace(Target.SubAddress, "!", "") 
End Sub 

модуль main

Код
Public Function Лист1B1()    
    '.............. код 
End Function  

Public Function Лист1D1()    
    '.............. код 
End Function 

Но. Как избавится от ошибки когда нет функции. (Чтобы сработало в холостую, без ошибки)

Изменено: bob1010 - 14.09.2019 18:27:57
 
Юрий М,Я поправил, правильно?
 
Всё нормально ) Только в тег кода заключайте именно код.
 
Юрий М,Извините Юрий, это снова я. Получил ваше первое письмо. bob1010, код следует оформлять соответствующим тем: ищите кнопку <...> и исправьте своё сообщение. Но скрин мне был более понятен (это я о годах) и я бы сразу исправился. Мне очень нравится ваш сайт, на нем учусь. Я первый раз пишу в форуме.
С уважением Владимир.
Изменено: bob1010 - 14.09.2019 18:30:36
Страницы: 1
Наверх