我有一个数组,应该为Excel的整个生命保持不变的值。 我得到错误“无效的外部程序”,而我想我初始化数组号:正在初始化数组
Public Aone(1 To 9) As Variant
Aone = Array(0.47589, 0.23795, 0.16656, 0.16656, 0.03569, 0.04759, 0.00119, 0.00119, 0.00119)
我有一个数组,应该为Excel的整个生命保持不变的值。 我得到错误“无效的外部程序”,而我想我初始化数组号:正在初始化数组
Public Aone(1 To 9) As Variant
Aone = Array(0.47589, 0.23795, 0.16656, 0.16656, 0.03569, 0.04759, 0.00119, 0.00119, 0.00119)
也终于得到了解决,
为@ASH建议但几乎没有扭曲:
在“ThisWorkbook”模块
Sub Workbook_Open()
Aone(1) = 0.47589
Aone(2) = 0.23795
Aone(3) = 0.16656
Aone(4) = 0.16656
Aone(5) = 0.03569
Aone(6) = 0.04759
Aone(7) = 0.00119
Aone(8) = 0.00119
Aone(9) = 0.00119
谢谢大家
在模块模块1
Private ar As Variant
Function Aone(idx As Integer) As Double
On Error GoTo FillArray
Aone = ar(idx)
Exit Function
FillArray:
ar = Array(0.47589, 0.23795, 0.16656, 0.16656, 0.03569, 0.04759, 0.00119, 0.00119, 0.00119)
Aone = ar(idx)
End Function
不幸的是,@ A.S.H仍然得到一个错误 – ygaft
没问题,还有更好的方法来做到这一点,我正在准备。 –
@ygaft编辑后的答案将为您提供索引从0到8的答案。如果您想要范围1到9,则可以将其设置为Aone = ar(idx - 1)。 –
只有常量可以在VBA中的子或函数之外定义。使用具有返回类型变体的公共函数将取代上面的内容。 –