1
我一直在試圖將一張簡單的表從一張表複製到另一張表的最後一行。 最初我嘗試使用數組,因爲兩個表都有不同的結構(列不在同一順序,所以我不能只複製粘貼&),但我總是得到錯誤1004. 現在我放棄了,並改變了所以他們兩個表都有相同的結構,現在我可以簡單地複製&粘貼,但我仍然得到相同的錯誤。 這是我到目前爲止。我知道這是一件很簡單的事情,但我不知道我錯在哪裏。如何將數組粘貼到範圍[VBA] - 錯誤1004
Sub testy()
Dim rowsIn, rowsOut As Long
With Worksheets("Sheet1")
rowsIn = .Cells.SpecialCells(xlLastCell).Row
.Range(.Cells(4, 1), .Cells(rowsIn, 3)).Copy
End With
With Worksheets("Sheet2")
rowsOut = .Cells.SpecialCells(xlLastCell).Row
.Range(.Cells(rowsOut + 1, 3)).PasteSpecial xlPasteValues
End With
End Sub
編輯:解決按添Williams的建議。但是,我仍然很好奇,如何以數組方式完成這項工作,就像我最初的意圖一樣。 假設Sheet1中的數據具有與Sheet2不同的順序的列,我嘗試使用臨時數組來訂購列,以便我可以將其粘貼。我設法填充數組很好,但無法弄清楚如何將數組的內容導入到Sheet2中。添加了我用來填充數組的代碼(以非常不利的方式)。
Sub testy2ElectricBoogaloo()
Dim arr() As Variant
Dim rowsIn, rowsOut, i As Long
With Worksheets("Sheet1")
rowsIn = .Cells.SpecialCells(xlLastCell).Row
ReDim arr(1 To rowsIn - 3, 1 To 5)
'Array populated with a loop because columns are not in the same order, don't know if this is the most efficient method
For i = 1 To UBound(arr)
arr(i, 1) = "Constant1" 'data collected from other source
arr(i, 2) = "Constant2" 'data collected from other source
arr(i, 3) = .Cells(i + 3, 2).Value
arr(i, 4) = .Cells(i + 3, 1).Value
arr(i, 5) = .Cells(i + 3, 3).Value
Next i
End With
End Sub
謝謝,這絕對是我需要的。感謝您的快速回復 - 我現在將繼續卸載Office,因爲它不知道如此基本的內容。 –
不是真的那麼基本;-) –
對不起,讓詢問在一個封閉的Q,但我會怎麼做,如果我想檢索一個數組,而不是一個範圍內的數據(如我本來想這樣做,但放棄了)? –