Łatwo jest wywołać funkcję wewnątrz modułu klasy za pomocą CallByName Co powiesz na funkcje wewnątrz standardowego modułu?Wywołanie Sub lub funkcji zawartej w module przy użyciu "CallByName" w VB/VBA
''#inside class module
''#classModule name: clsExample
Function classFunc1()
MsgBox "I'm class module 1"
End Function
''#
''#inside standard module
''#Module name: module1
Function Func1()
MsgBox "I'm standard module 1"
End Function
''#
''# The main sub
Sub Main()
''# to call function inside class module
dim clsObj as New clsExample
Call CallByName(clsObj,"ClassFunc1")
''# here's the question... how to call a function inside a standard module
''# how to declare the object "stdObj" in reference to module1?
Call CallByName(stdObj,"Func1") ''# is this correct?
End Sub
Nie możesz. Wyszukaj "Application.Run", który działa z procedurami w standardowych modułach. – jtolle
Ponieważ twoje "funkcje" nie odpowiadają wartościom, powinieneś użyć 'Sub' zamiast' Function'. 'Call' nigdy nie jest wymagane, możesz po prostu napisać' CallByName clsObj, "ClassFunc1" '. Aby wywołać funkcję Func1 wewnątrz standardowego modułu jest tak proste, jak 'Func1' - użyj odpowiednich modyfikatorów w deklaracji, aby zmienić zakres w razie potrzeby – barrowc