Excel 将工作簿传递给Access VBA中的函数时出现错误424
在Access中使用VBA,我试图将Excel工作簿传递给另一个函数 我使用以下命令创建工作簿(已剪切) 使用上面的方法,我能够操作Excel实例 但是,我尝试使用Excel 将工作簿传递给Access VBA中的函数时出现错误424,excel,ms-access,vba,Excel,Ms Access,Vba,在Access中使用VBA,我试图将Excel工作簿传递给另一个函数 我使用以下命令创建工作簿(已剪切) 使用上面的方法,我能够操作Excel实例 但是,我尝试使用 OutputLog (xl) 然后 Function OutputLog(xl As Variant) As String xl.Application.Visible = True End Function …我得到错误424所需对象问题在这一行: OutputLog(xl) 此处使用括号将对象(应用程序)转换为简单类
OutputLog (xl)
然后
Function OutputLog(xl As Variant) As String
xl.Application.Visible = True
End Function
…我得到错误424所需对象问题在这一行:
OutputLog(xl)
此处使用括号将对象
(应用程序
)转换为简单类型(字符串
“Excel应用程序”)
正确的版本是:
OutputLog xl
呼叫输出日志(xl)
您可以在VBA中找到有关调用过程的详细信息。是否应该将参数中的x1定义为类型对象?@A
Variant
可以是任何内容,包括对对象的引用,因此这是有效的。将其定义为对象
只会占用很少的内存,因为变体
也需要存储其类型。但是,您将其作为对象使用,而没有将其转换为对象,这就是为什么我怀疑您会出错的原因。@RobAnthony您不需要将其转换为任何内容,代码是有效的。请尝试以下操作(很抱歉注释中的格式错误):Public Sub TestVariant()Dim a As Application Set a=Application TestVariantPart2 a End Sub Public Sub TestVariantPart2(As Variant)调试。打印a.生成End Sub
将OutputLog(xl)
更改为OutputLog xl
。
Function OutputLog(xl As Variant) As String
xl.Application.Visible = True
End Function