我有一個數組,應該爲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中的子或函數之外定義。使用具有返回類型變體的公共函數將取代上面的內容。 –