Thật dễ dàng để gọi một hàm bên trong một classModule sử dụng CallByName Làm thế nào về các hàm bên trong mô-đun chuẩn?Gọi một phụ hoặc chức năng chứa trong một mô-đun bằng cách sử dụng "CallByName" trong 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
Bạn không thể. Tra cứu 'Application.Run', hoạt động với các thường trình trong các mô-đun chuẩn. – jtolle
Vì 'hàm số' của bạn không phải là giá trị retuning, bạn nên sử dụng 'Sub' thay vì' Hàm'. 'Gọi' là không bao giờ cần thiết, bạn chỉ có thể viết' CallByName clsObj, "ClassFunc1" '. Để gọi hàm Func1 bên trong một mô-đun chuẩn đơn giản là 'Func1' - sử dụng các công cụ sửa đổi thích hợp trong khai báo để thay đổi phạm vi nếu cần – barrowc