将键传递给函数作为字符串参数时,VBA Excel错误“按参考参数类型不匹配”

用户429400

我在以下子test()上收到“按引用参数类型不匹配”错误:

Public Function GetOtherDict(k As String, dict As Dictionary) As Dictionary

    Dim otherDict As New Dictionary

    curItem = dict.Item(k)
    otherDict.Add curItem, curItem

    Set GetOtherDict = otherDict
End Function

Public Sub Test()

    Dim dict As New Dictionary
    dict.Add "a", 1
    dict.Add "b", 2

    For Each k In dict.Keys

        Dim otherDict As Dictionary
        Dim curKey As String
        curKey = k 
        Set otherDict = GetOtherDict(k, dict)

    Next

End Sub

当我GetOtherDictcurKey参数而不是参数调用函数时k错误消失了。

您能告诉我为什么需要这个多余的声明吗?

悉达思·劳特(Siddharth Rout)

另外,您已经k As String在函数中声明了该函数,因此该函数希望您将a传递String给它。由于您尚未k在中声明Sub Test(),因此k将被视为a Variant,因此您通过引用参数类型不匹配获得了该“错误”。

当你通过它不会给你一个错误curKey,因为curKey被定义为StringSub Test()其中有什么功能预计...

另一个提示:请Option Explicit在代码末尾使用

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将字符串参数传递给函数作为dplyr中的数据框列名称

将字符串作为参数名称/值对传递给R函数

将字符串变量传递给Variant参数并将Array函数的结果分配给参数时,类型不匹配

传递函数输出以查找作为参数传递给输入文件的函数输出的字符串

将指向字符串的指针作为函数的参数传递时发生类型冲突

将文件作为一个字符串参数传递给bash函数

将keras优化器作为字符串参数传递给keras优化器函数

将函数的字符串参数作为列名传递

当我尝试将字符串作为参数传递给Azure自定义脚本扩展中的Powershell函数时,“传递了无效的数组...”

如何将字符串作为参数传递给javascript函数

将数组的元素作为参数列表传递给函数(而不是组合字符串)

将在一个函数中创建的字符串值作为参数传递给函数

类型不匹配错误,将字符串从数组(在VBA中)传递给函数

如何将字符串作为参数传递给JavaScript函数?

将字符串作为键参数传递给函数

将php字符串作为参数传递给php脚本中调用的javascript函数

如何将字符串作为参数传递给需要R中的变量的函数

将参数列表作为一个字符串传递给python函数

将空格字符串作为参数传递给函数

将参数传递给函数以返回字符串

将字符串作为参数传递给 python 脚本

将 Ruby 字符串传递给 Javascript 函数参数

将多个字符串值作为参数从服务器端传递给 javascript 函数

PHP将逗号分隔的字符串作为多个参数传递给函数

如何将连接的字符串作为参数传递给函数:Angular 2

将 PHP 字符串和整数作为参数传递给 JavaScript 函数

当我将它作为参数传递给函数时,字典给出“类型错误:字符串索引必须是整数”

将参数传递给函数内的字符串 json

将字符串作为函数中的参数传递给 R 中的其他函数