调用可返回数组的自定义函数来赋值显示类型不匹配!!!!!!!!!!!!!!!!!!!!!!!!
想调用可返回数组的自定义函数a来给B1(3)赋值,但是运行老是提示函数a的“类型不匹配”,不知道该怎么解决??
Public Function a(ByVal a As Single, ByVal b As Single, ByVal c As String, ByVal d As Single) As Single()
Dim ahc() As Single '定义经济技术指标判断集缓存集
ReDim ahc(3) As Single '再定义经济技术指标判断集缓存集
.......
a = ahc() '返回数组
End Function
Private Sub Command1_Click()
dim B1(3) as string
.........
B1(3) = a(c(i, 0), c(i, 1), std, bgsd) '函数调用,其中C(i,0)C(i,1)为刚刚赋值的数组
end sub
自定义函数
[解决办法]
真佩服lz:函数名能和其参数名一样吗?
另外:B1(3) = a(c(i, 0), c(i, 1), std, bgsd)中B1(3)是一个数组中的元素,而a返回的是数组,它们之间怎能划=号?
B1 = a(c(i, 0), c(i, 1), std, bgsd)
[解决办法]
Private Sub Command1_Click()
dim B1(3) as string
Public Function a(ByVal a As Single, ByVal b As Single, ByVal c As String, ByVal d As Single) As Single()
首先: B1(3) = a(......)
这儿的 B1(3) 是一个数组的最基本的元素(简单变量, 类型: string),而函数a( ) 的返回值是数组。
这能“匹配”吗?
其次: B1 是 String类型数组, 而函数a( ) 的返回值是Single类型数组。 这也无法匹配!
再次: 返回数组的函数,只能赋值给动态数组,而 B1声明为固定数组,就算类型完全匹配,也不符合语法!不能赋值!
[解决办法]
Public Function a(ByVal a As Single, ByVal b As Single, ByVal c As String, ByVal d As Single) As Single()
Dim ahc() As Single '定义经济技术指标判断集缓存集
ReDim ahc(3) As Single '再定义经济技术指标判断集缓存集
.......
a = ahc '返回数组
End Function
Private Sub Command1_Click()
dim B1() as as single ' string既然返回是single,不能使用使用sting数组来接收
.........
B1 = a(c(i, 0), c(i, 1), std, bgsd) '函数调用,其中C(i,0)C(i,1)为刚刚赋值的数组
end sub