2013-02-14 65 views
0

我需要將數據從Excel範圍複製到數組中。我正在使用下面的代碼,但它顯示錯誤「期望的數組」。將工作表數據複製到數組時出錯

Dim filename As String 
    Dim arraysize As Integer 

    arraysize = 50 
    I = 1 
    Do Until ThisWorkbook.Sheets("sheet1").Cells(I, 1).Value = "" 
    filename(arraysize) = ThisWorkbook.Sheets("sheet1").Cells(I, 1).Value  
    I = I + 1 
    Loop 

回答

-1

您還沒有聲明該數組。我無法將代碼想象成我的頭頂,但這應該指向正確的方向。

Dim Filename(50) 

Do 
    Filename(I)= excel.row 
Loop 
+0

簡單,很好地完成...謝謝:) – user2070732 2013-02-14 08:10:10

+0

-1所呈現的代碼不起作用。 – chuff 2013-02-14 16:26:38

1

試試這個

Sub Demo() 
    Dim filename As Variant 
    Dim arraysize As Long 
    Dim rng As Range 
    Dim i As Long 

    i = 1 
    With ThisWorkbook.Sheets("sheet1") 
     Set rng = .Range(.Cells(i, 1), .Cells(i, 1).End(xlDown)) 
    End With 

    ' load as two dimensional array 
    filename = rng.Value 

    ' transform into 1 dimensional array 
    filename = Application.Transpose(filename) 

    arraysize = UBound(filename) 
End Sub 
+1

+ 1很好完成:)我猜'i'不是必需的,可以插入自己的代碼:)我也對使用'xlDown'來尋找lastrow表示懷疑。我最喜歡的方法是http://stackoverflow.com/questions/11169445/error-finding-last-used-cell-in-vba – 2013-02-14 06:38:23

+0

謝謝Siddharth。我假設這是一個更大的應用程序的代碼片段,其中「我」具有一定的意義。我使用'xlDown'來複制OP代碼的行爲 - 如你所知,這從'我'行爲到第一個空白行,很多行可能不是最後一行(儘管我承認我沒有覆蓋這些行'i'處的單元格是空白的,或者只有一個非空白單元格從'i'開始) – 2013-02-14 07:02:37

相關問題