用数组显示“类型不匹配,怎么解决

发布网友 发布时间:2022-04-23 13:11

我来回答

1个回答

热心网友 时间:2023-06-27 04:52

你这里有两个错误,都会导致“类型不匹配”。
1、B1(3) = a(c(i, 0), c(i, 1), std, bgsd)。
原因是:你的函数返回的是一个数组,而B1(3)只表示B1数组的第四个元素(下表为3),一个数组和一个元素,当然“类型不匹配”咯!
B1()或者B1都表示整个数组。
2、dim B1(3) as string
这里定义的B1数组是String类型,而数组返回的是Single类型,当然也是“类型不匹配”咯!
正确的代码应该是这样的:
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 Single
.........
B1() = a(c(i, 0), c(i, 1), std, bgsd) '函数调用,其中C(i,0)C(i,1)为刚刚赋值的数组
End Sub

为了帮助你理解,我再给你一个实例:
Private Sub Command1_Click()
Dim i As Integer
Dim ary() As Integer
' ReDim ary(2) '可以重新定义,但是不必要
i = 2
ary() = fary(i)
Print ary(i)
End Sub
Public Function fary(i As Integer) As Integer()
Dim m(2) As Integer
m(0) = i
m(1) = i + 1
m(2) = i + 2
fary = m
End Function

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com