这似乎应该是一个简单的但我被卡住了。
我在Access中运行VBA脚本,在Excel中创建一个超过40页的报告。
我正在使用Early Binding创建一个Excel应用程序对象:
Public obj_xl As New Excel.Application
以下是我如何引用该对象的示例:
With obj_xl
.Workbooks.Add
.Visible = True
.Sheets.Add
.blahblahblah
End With
问题是程序变得太大,我需要将代码分解为单独的模块。
如果我尝试从与其创建的模块不同的模块引用Excel应用程序对象,则会引发错误(“不明确的名称”)。
我确信我可以使用Win API做些什么,但这似乎有点矫枉过正。
有什么想法?谢谢
答案 0 :(得分:1)
这种情况会导致错误“不明确名称”
Function Split(s As String)
MsgBox s
End Function
Function Split(s As String)
MsgBox s
End Function
我知道这个例子很简单,但你要找的是一个函数,一个对象和/或一个具有相同名称的表单控件。
答案 1 :(得分:0)
如果您将声明转换为全局,则可以在所有模块中引用它。例如,在一个模块中,将其放在顶部:
Global obj_xl As Excel.Application
然后在另一个模块中,
Sub xx()
Set obj_xl = New Excel.Application
Debug.Print obj_xl.Name
End Sub