在excel中,我有一個空白模板和一組需要插入到模板中的原始數據。我需要幫助創建VBA代碼,將數據複製並粘貼到模板中,使其不粘貼任何額外的單元格(停在數據末尾)。我的原始數據發生變化,應該可以是任意長度的行,但始終在列Z:AL上始終保持不變。我很有興趣將它移動到列A5:M5。excel VBA代碼複製和粘貼一組有限數量的數據(計數)
在此先感謝!
在excel中,我有一個空白模板和一組需要插入到模板中的原始數據。我需要幫助創建VBA代碼,將數據複製並粘貼到模板中,使其不粘貼任何額外的單元格(停在數據末尾)。我的原始數據發生變化,應該可以是任意長度的行,但始終在列Z:AL上始終保持不變。我很有興趣將它移動到列A5:M5。excel VBA代碼複製和粘貼一組有限數量的數據(計數)
在此先感謝!
這是我能想到的最簡單的代碼。您可能想要在範圍前面引用工作表參考,並且我包含了一些查找範圍末尾的方法。我更喜歡第三種方法。
dest = "A5"
wsName = "DataSheet"
With Worksheets(wsName)
endRow1 = .Range("Z1").End(xlDown).Row
endRow2 = .Range("Z105000").End(xlUp).Row
endRow3 = .Range("Z:AL").Cells.Find("*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
.Range("Z1:AL" & endRow3).Copy Destination:=Range(dest)
End With
如果數據集中的列中沒有空格(我假設列Z),那麼您可以使用Range.End獲取最後一行。我儘量避免在宏中使用複製/粘貼,因爲有更快的方法來完成它。
Option Explicit
Sub MoveDataRange()
Dim dest As Range, endRow As Integer
With Worksheets("DataSheet")
endRow = .Range("Z1").End(xlDown).Row
Set dest = .Range("A5").Resize(endRow, 13) '13 columns between Z:AL
dest.Value = .Range("Z1:AL" & endRow).Value
End With
End Sub