我对VBA还不熟悉,并且我已经编写了一个脚本问题。它应该做的是在单个单元格中使用以分号分隔的数据(数据包含括号内的名称和数字),并找到具有最大数字的名称,然后将其分成不同的单元格。
从字符串中取出数字我正在使用由ozgrid开发的自定义函数ExtractNumber:http://www.ozgrid.com/VBA/ExtractNum.htm
我在尝试调用该函数时一直收到错误424,在我的代码的这一部分中:
flush()
根据我的理解,当变量定义不正确或根本没有定义时,会弹出此错误。我仔细检查了所有变量,并尝试在没有“显式选项”的情况下运行代码,但没有运气。这可能是一个非常明显的问题,但我似乎无法找到它的生命!
有人可以就如何避免此错误提出任何建议吗?这是我的完整代码:
For i = 0 To a
stored(i) = ExtractNumber((Full(i)))
Next i
答案 0 :(得分:0)
该功能想要一个范围:
Function ExtractNumber(rCell As Range,
但是你传递了一个字符串,在这种情况下,由于该函数的工作方式,你只需将函数更改为:
ExtractNumber(rCell As String,
你得到的令人困惑的错误是因为你传递的变量周围有一对额外的括号:
ExtractNumber((Full(i)))
这会强制它传递ByVal而不是ByRef,这对于对象变量(rCell
)无效并导致你看到的424错误。
如果您更改为ExtractNumber(Full(i))
,由于上述原因,您会收到更明显的类型不匹配错误。