我知道你可以很容易地取一些單元格並將它們放到一個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