VBA调试打印ParamArray错误13类型不匹配值

塔莫萨

在Access VBA中,我尝试打印已解析的Parameter数组的值,但始终收到运行时错误13-类型不匹配。数组中的值是混合类型,即Double,String和Long。

代码如下:

Function MyArray() as Variant

Dim MyParams(2) as Variant
MyParams(0) = "3459"
MyParams(1) = "3345"
MyParams(2) = "34.666"

MyArray = MyParams

End Function

Sub PrintArray(ParamArray Params() As Variant)

    Dim p_param as Variant

    For Each p_param in Params
        Debug.Print params < - Error occurs here
    Next p_param

End Sub

我尝试转换为字符串等,但仍然无法正常工作。

有什么建议么?

马修·金登(Mathieu Guindon)

为了迭代这些ParamArray值,您需要了解要接收的参数。

说你有这个:

Public Sub DoSomething(ParamArray values() As Variant)

最酷的ParamArray是,它允许调用代码执行此操作:

DoSomething 1, 2, "test"

如果您在DoSomething,则收到values()3个项目:数字12和包含单词的字符串test

但是,您的情况正在发生,您正在执行以下操作:

DoSomething Array(1, 2, "test")

当您进入时DoSomething,您收到的values()是一项:包含数字1的数组2和包含word的字符串test

坏消息是您无法控制调用代码如何调用该函数。

好消息是您可以对此灵活:

Public Sub DoSomething(ParamArray values() As Variant)
    If ArrayLenth(values) = 1 Then
        If IsArray(values(0)) Then
            PrintArray values(0)
        End If
    Else
        PrintArray values
    End If
End Sub
Public Function ArrayLength(ByRef target As Variant) As Long
    Debug.Assert IsArray(target)
    ArrayLength = UBound(target) - LBound(target) + 1
End Function

现在,任何一种方法都可以工作:

DoSomething 1, 2, "test"
DoSomething Array(1, 2, "test")

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

VBA错误13类型不匹配

VBA宏:错误13类型不匹配,单元格上出现错误2023

更新汇率-VBA-运行时错误13类型不匹配

Excel VBA Target.Address被修改并导致错误13类型不匹配

VBA Excel“错误13:类型不匹配”

VBA-Erro 13类型不匹配,用于简单的着色标签

如果File =“ False” Application.GetOpenFileName错误13类型不匹配

。在SearchDirection中查找变量将导致运行时错误13类型不匹配

Access数据库运行时错误13类型不匹配

运行另一个微型计算机时出现错误13类型不匹配的VBA

WorksheetFunction.Countifs 13类型不匹配

运行时13类型不匹配

Excel VBA运行时错误类型不匹配13

继承上的 VBA 类型不匹配(错误 13),用户来自

Excel VBA运行时错误“ 13”:类型不匹配

无法解决 VBA 数组错误 13 类型不匹配

VBA 中的类型 13 数据不匹配错误

VBA数据类型不匹配错误13

运行时错误 13' 类型不匹配 VBA excel

类型不匹配错误#13

VBA 2042类型不匹配-#N / A-阵列

使用vba修剪值时键入不匹配(错误13)

在Java 8类型不匹配错误

工作的DLL代码失败,并出现运行时错误13:调试时类型不匹配

Access 2010 VBA类型不匹配(错误13)或运行时错误424(必需的对象)

VBA Excel中的“运行时错误13:类型不匹配”错误

类泛型的类型不匹配

类模板方法的特化,类型名是类模板 - 错误:参数的类型/值不匹配

带有数组的VBA Application.Index导致类型不匹配错误13