我知道你可以很容易地取一些单元格并将它们放到一个Variant数组中,但我想使用一个字符串数组(因为它是单维的,占用的内存比一个Variant数组)。Excel VBA:范围到1个步骤中的字符串数组
有没有办法自动将范围转换为字符串数组?
现在我正在使用一个函数,它将采用范围并将值保存在变量数组中,然后将变量数组转换为字符串数组。它的工作很好,但我正在寻找一种方法,直接从范围到字符串数组。任何帮助将不胜感激。
Function RangeToArray(ByVal my_range As Range) As String()
Dim vArray As Variant
Dim sArray() As String
Dim i As Long
vArray = my_range.Value
ReDim sArray(1 To UBound(vArray))
For i = 1 To UBound(vArray)
sArray(i) = vArray(i, 1)
Next
RangeToArray = sArray()
End Function
UPDATE: 它看起来像没有办法第一它转换为一维字符串数组之前跳过数据掷入变量阵列的步骤。如果这是真的,那真可惜(即使它不需要太多的努力,我喜欢超优化,所以我希望有一种方法可以跳过这一步)。如果没有解决方案出现,我会在几天内解决问题。感谢有用的评论,伙计们!
UPDATE2: 回答西蒙,他付出了很大的努力(所有人都这么做),并且很好地指出,从一个镜头范围到字符串阵列确实是不可能的。感谢大家。
有,你可以在VBA访问创建一个非常有效的作用于数组转换直接内存操作例程。我没有时间和技巧来鞭打一个,尽管我在主应用程序中有一些内存映射代码,所以它就在那里,并且会帮助您制作一个非常高效的阵列复制程序。 –
我给出的一些内存函数的链接是[here](http://superuser.com/questions/196565/how-to-merge-data-from-two-differently-structured-excel -files/196577#196577)。 –
尽管我无法将链接中的信息应用于此特定问题,但它是一个很好的阅读和有趣的内容。感谢您的链接。 – aevanko