我有一个Excel工作簿,其中包含Workbook_Open
中的一些基本开放代码和xSheet
中的一些代码,即
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
Run s00Config_Worksheet_SelectionChange(Target)
End Sub
其中sub s00Config_Worksheet_SelectionChange
存在于加载的Excel AddIn中(暂时可见)。
但是当我在第一张表中执行程序时,我得到的是Sub或Function not defined。
在AddIn中,sub已被定义为
Public Sub s00Config_Worksheet_SelectionChange(ByVal Target As Range)
问题是:
答案 0 :(得分:1)
Run
由Excel提供,VBA将其视为普通子例程。因此,当您说Run s00Config_Worksheet_SelectionChange(Target)
时,VBA会尝试立即评估函数,然后将其作为第一个参数传递给Run
。为了防止VBA像这样干扰,Run
要求您将目标子例程名称作为字符串传递给它,然后继续执行目标参数列表的其余部分:
Run "s00Config_Worksheet_SelectionChange", Target
如果您想从您调用的任何函数中获取值,则应用相同的语法:
v = Run("s00Config_Worksheet_SelectionChange", Target)
答案 1 :(得分:0)
删除Run
和parentheses:
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
s00Config_Worksheet_SelectionChange Target
End Sub