新浪博客

vba中的“ByRef参数类型不符”问题

2012-05-17 22:48阅读:
最近在做交易模型退出策略的检验编程,当用到vba函数调用时,老是出现'ByRef参数类型不符'的问题,导致函数无法运行;经过搜索,发现


1、ByRef参数类型不符问题描述:


sub main()
dim a, b as double
dim c as double
c=test(a,b)
end sub


function test(aa as double, bb as double)
test=1
end function


2、问题产生原因如下:


Dim a, b As Integer
以上定义变量a被定义为variant型,b则被定义为integer型,在vba中定义变量时如变量名后无 as 类型,则统统被定义为variant型,在你的例子中就会出现类型不符的错误,
正确的命名方法是
dim a as integer,b as integer

dim a as integer

dim b as integer


3、修改方案
修改成以下代码便可以执行
sub main()
dim a as double
dim b as double
dim c as double
c=test(a,b)
end sub


function test(aa as double, bb as double)
test=1
end function

我的更多文章

下载客户端阅读体验更佳

APP专享