我在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
以外的其他类型的数组?
搜索没有在后一个问题上产生结果。
答案 0 :(得分:1)
最简单的方法是将数组声明为字符串或布尔数组,就像这样:
Dim arr() as String
Dim arr() as Boolean
它也适用于功能btw。
如果由于类型不匹配而无法加载整个范围,请将其加载到临时Variant数组中,然后重新调整String或Boolean数组以匹配并循环所有内容并使用转换函数:{{1 }},CBool
,CStr
,CInt
,...