注册 登录
编程论坛 VB6论坛

代码显示类型不匹配,求大神解惑

朱龙飞 发布于 2019-12-07 10:35, 1358 次点击
Dim W1() As Long
Dim Idx1 As Double
Dim LB1 As Double
W1 = Array(0.433, 0.572, 0.65, 0.724, 0.75, 0.866, 0.95, 1.008, 1.108, 1.157, 1.22, 1.302, 1.41, 1.5, 1.524, 1.553, 1.63, 1.65, 1.732, 1.747, 1.78, 1.8, 1.9, 2, 2.02, 2.032, 2.12, 2.217, 2.35, 2.36, 2.45, 2.5, 2.595, 2.73, 2.886, 2.995, 3.09, 3.177, 3.3, 3.468, 3.56, 3.58, 3.666, 3.9, 4.091, 4.4, 4.773, 5.35, 5.525, 5.7, 6.007, 6.3, 6.9, 6.91, 7.55, 8, 8.5, 9, 9.5, 10, 10.5, 11, 11.5, 13, 14, 16, 20)
For LB1 = 1 To UBound(W1)
If Abs(B1 - W1(LB1)) < Abs(B1 - W1(Idx1)) Then Idx1 = LB1
Next
1 回复
#2
风吹过b2019-12-08 10:59
Array 函数

返回一个包含数组的 Variant。
语法
Array(arglist)

所需的 arglist 参数是一个用逗号隔开的值表,这些值用于给 Variant 所包含的数组的各元素赋值。如果不提供参数,则创建一个长度为 0 的数组。

说明
用来表示数组元素的符号由变量名、圆括号以及括号中的所需元素的索引号组成。在下面的示例中,第一条语句创建一个 Variant 的变量 A。第二条语句将一个数组赋给变量 A。最后一条语句将该数组的第二个元素的值赋给另一个变量。

Dim A As Variant
A = Array(10,20,30)
B = A(2)

使用 Array 函数创建的数组的下界受 Option Base 语句指定的下界的决定, 除非 Array 是由类型库(例如 VBA.Array )名称限定。如果是由类型库名称限定,则 Array 不受 Option Base 的影响。

注意 没有作为数组声明的 Variant 也可以表示数组。除了长度固定的字符串以及用户定义类型之外,Variant 变量可以表示任何类型的数组。尽管一个包含数组的 Variant 和一个元素为 Variant 类型的数组在概念上有所不同,但对数组元素的访问方式是相同的。

--------------------------
Dim W1() As Long   这句定义错了。根据上面的 函数说明修改吧。

------------
If Abs(B1 - W1(LB1)) < Abs(B1 - W1(Idx1)) Then Idx1 = LB1
这个 B1 变量在哪里定义的?
1