2015-10-01 181 views
1

我有一个数组,应该为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) 
+0

只有常量可以在VBA中的子或函数之外定义。使用具有返回类型变体的公共函数将取代上面的内容。 –

回答

0

也终于得到了解决,

为@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 

谢谢大家

0

在模块模块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 
+0

不幸的是,@ A.S.H仍然得到一个错误 – ygaft

+0

没问题,还有更好的方法来做到这一点,我正在准备。 –

+0

@ygaft编辑后的答案将为您提供索引从0到8的答案。如果您想要范围1到9,则可以将其设置为Aone = ar(idx - 1)。 –