VBA - 从加载项调用函数中的Excel对象

时间:2018-05-17 09:09:10

标签: excel vba excel-vba

我有一个名为ThisWorkbook的Excel对象和一个名为Module1的模块。在Module1中,我有一个名为function1的函数。 ThisWorkbook有一个名为sub1的私有子。当用户调用此函数时,我希望Excel首先执行sub1,如果没有错误,请执行该函数的其余部分。但是,当调用function1时,我无法处理sub1。

Excel对象 - ThisWorkbook

Private WithEvents App As Application

Public Sub sub1(some parameters)
...
If (condition) Then
  Msgbox ()
End If
...
End Sub

Private Sub Workbook_Open()
  Set App = Application
End Sub

Excel模块 - 模块1

Function function1(Add As String, some parameters) As String
    ThisWorkbook.sub1(some parameters)
    ...
End Function

**经常更新以显示当前的代码状态

2 个答案:

答案 0 :(得分:0)

由于Sub1ThisWorkbook的范围内,而不是在全局模块中,因此您需要在通话中指明:

Call ThisWorkbook.Sub1

答案 1 :(得分:0)

如果您想引用ThisWorkbook中的子广告,您应该参考ThisWorkbook以及:

ThisWorkbook.sub1代替Call sub1