将数据复制/粘贴到最后一行/每列数据之后。从旧工作簿到新工作簿

时间:2016-05-27 14:07:28

标签: excel excel-vba vba

我正在更新每周主文件。因此,我正在尝试将源文件中的数据复制并粘贴到主工作表中。现在,需要将数据粘贴到上周数据之后的列和行。因此,例如,如果上周数据结束(" H70:M70"),我需要将新粘贴的数据转到(" H71:M71")。此外,新粘贴的数据有很多行,因此必须在本周数据的最后一行/列之后粘贴nexts周数据,即(" H230:M230")。请帮忙。

Option Explicit
Sub Copydata()
Dim myWB As Workbook
Dim thisWB As Workbook
Dim thisWS As Worksheet

Application.ScreenUpdating = False    

Set myWB = Workbooks.Open("C:\Users\jjordan\Desktop\test.xlsx")

myWB.Sheets("Sheet1").Range("A8:F17").Copy

Set thisWB = ThisWorkbook
Set thisWS = thisWB.Sheets("Test data")

thisWB.Activate
thisWS.Range("H71:M71").PasteSpecial _
    Paste:=xlPasteValues, Operation:=xlNone, _
    SkipBlanks:=False, Transpose:=False

With Application
    .CutCopyMode = False
    .ScreenUpdating = True
End With

myWB.Close

End Sub

1 个答案:

答案 0 :(得分:1)

詹姆斯,你熟悉VBA中的End()吗?

lastRow = ActiveSheet.Cells(Rows.Count,1).End(xlUp).Row

这将转到工作表第1列中的最后一个可能的单元格,然后一直向上,直到找到包含数据的单元格并返回相应的行。

End()的其他可能参数是xlDown,xlToLeft和xlToRight。它们可用于查找最后/第一列和行。