我將一個大範圍從 Excel 電子表格傳遞到用 VBA 編寫的使用者定義函數 (UDF) 的參數 ExcelRange。
- 我可以將參數 ExcelRange 宣告為 Range,然後將其轉換為 Variant:
Dim VariantArray As Variant
VariantArray = ExcelRange.Value2
或者
- 我可以直接將UDF的參數ExcelRange聲明為Variant。
無論哪種情況,在循環內,我都會將 VariantArray 或 ExcelRange 的每個元素轉換為 Double 變數。
1. 和 2. 哪個更省時?
答案1
無論哪種情況,在循環內,我都會將 VariantArray 的每個元素轉換為 Double 變數。
1. 和 2. 哪個更有效率?
無論如何,當您將範圍轉換為 Variant 時,我認為性能沒有太大差異。
無論您轉換然後通過還是通過然後轉換都應該付出相同的努力。
差別在於 UDF 的使用:
- 如果您需要對範圍執行任何操作(例如獲取位址),那麼顯然您需要採用 Range 參數
- 如果您希望使用者傳遞陣列而不是 Range,那麼最好將參數宣告為 Variant(例如,
=SUM({1,2,3})
Excel 中的有效公式)。