【发布时间】:2017-02-16 21:33:30
【问题描述】:
我的 Excel 工作表中有几个命名范围,用于在会话之间存储 VBA 宏的数据。加载时,我需要将该数据放入多个数组(String 和 Booleans)。
Dim arr() As Variant
Dim rg As Range
Set rg = Sheets("Calc").Range("myRange")
arr = rg.Value2
如何将arr() 类型转换为String 或Boolean 数组以在我的宏中使用?
如果我尝试使用 Variant 数组,我会在函数调用中得到 ByRef argument mismatch errors。
或者是否有其他方法可以将范围的内容放入Variant 以外的其他类型的数组中?
后一个问题的搜索没有产生结果。
【问题讨论】:
-
对于布尔值,您必须循环填充数组。对于字符串,只要是单行或单列的范围,稍微乱七八糟就可以了,但是循环还是比较简单的。
-
在传递给你的函数时,你不能将它转换为字符串等吗?
CStr(arr(1, 1))之类的东西 - 或者你是否将整个数组传递给你的函数? -
除了在循环中手动转换之外,我不知道有任何其他方法可以做到这一点。在函数中测试类型并通过 Variant:
If VarType(v) = vbBoolean Then不是更容易吗?