将混合类型范围存储到数组

时间:2018-04-23 14:16:43

标签: arrays string vba text

使用以下逻辑

将一系列值存储到数组时
 dim arr as variant
 arr = range("A1:B20").value

数字格式为文本并以格式“US $ 22,000,000.00”或“£32,000,000.00”或“C $ 21,000,000.00”显示在单元格中的值将作为与显示值不同的数字存储到数组中。 (例如,对于第一个“US $ 22,000,000.00”值,存储在数组元素中的值最终类似于“879732937329”)

我尝试使用以下代码来获取单元格中显示的文本,但是在尝试将数组中的值分配给另一个变量时,它给出了类型不匹配错误(我假设arr最终成为当我使用时为空:

dim arr as Variant
arr = range("A1:B20").text

有没有办法用范围的文本值填充数组而不循环并将每个单元格分别读取到数组元素?

1 个答案:

答案 0 :(得分:2)

您的错误似乎无法重现。以下代码按您的意愿行事:

Sub test()
Dim arr As Variant

arr = Range("A1:A6").Value

For Each entry In arr
    Debug.Print entry & vbTab & TypeName(entry)
Next entry


End Sub

enter image description here