作者:iamlaosong
1、问题提出
编程中发现一个问题,系统总是提示编译错误,ByRef 参数类型不符,
可实际上参数定义没问题,原因在哪儿呢?
2、问题环境
假定函数定义如下:
Function get_kind(addr As String) As Integer
......
End Function
调用过程:
Sub check_address()
Dim addr, new_addr(10000) As String
......
addr = new_addr(i)
......
kk = get_kind(addr)
......
End Sub
3、问题原因
addr赋值后类型就不对了,虽然都是字符串,数组变量和单个变量不一样,编译系统就是报错。
找到原因问题就容易解决了:
方法一:强制转换,用Cstr(addr)
方法二:换个变量,先赋值myaddr=addr,再调用kk = get_kind(myaddr)
4、问题扩展
其它类型数组也存在同样的问题,这算不算是个BUG?
VBA自定义函数参数类型不符的错误,布布扣,bubuko.com
原文地址:http://blog.csdn.net/iamlaosong/article/details/36871769