2016-09-09 42 views
0

在excel中,我有一個空白模板和一組需要插入到模板中的原始數據。我需要幫助創建VBA代碼,將數據複製並粘貼到模板中,使其不粘貼任何額外的單元格(停在數據末尾)。我的原始數據發生變化,應該可以是任意長度的行,但始終在列Z:AL上始終保持不變。我很有興趣將它移動到列A5:M5。excel VBA代碼複製和粘貼一組有限數量的數據(計數)

在此先感謝!

回答

0

這是我能想到的最簡單的代碼。您可能想要在範圍前面引用工作表參考,並且我包含了一些查找範圍末尾的方法。我更喜歡第三種方法。

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 
0

如果數據集中的列中沒有空格(我假設列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