Excel 将工作簿传递给Access VBA中的函数时出现错误424

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) 此处使用括号将对象(应用程序)转换为简单类

在Access中使用VBA,我试图将Excel工作簿传递给另一个函数

我使用以下命令创建工作簿(已剪切)

使用上面的方法,我能够操作Excel实例

但是,我尝试使用

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