首页 > 解决方案 > VBA 函数似乎返回一个数组,但我得到“类型不匹配:预期数组或用户定义类型”

问题描述

我有这组 VBA 函数:

Sub x()
    Dim a() As Variant
    z y(a)
End Sub

Function y(a() As Variant) As Variant
    y = a
End Function

Function z(a() As Variant) As Variant
    z = a
End Function

当我运行时x(),该行z y(a)会引发错误:

Type mismatch: array or user-defined type expected

我猜这是因为z()期望一个数组作为参数,但返回值y()是一个变体,而不是一个数组。我不确定如何明确y()返回一个变体数组——我声明错了吗?

标签: arraysvba

解决方案


尽管您的代码什么都不做,但这将停止错误:

Sub x()
    Dim a() As Variant
    z y(a)
End Sub

Function y(a() As Variant) As Variant()
    y = a
End Function

Function z(a() As Variant) As Variant()
    z = a
End Function

推荐阅读