我将 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 参数
- 如果您希望用户传递数组而不是范围,那么最好将参数声明为变量(例如
=SUM({1,2,3})
Excel 中的有效公式)。