从各种工作簿复制工作表并粘贴到不同工作簿中的工作表

时间:2016-02-02 16:40:07

标签: excel vba excel-vba

我有7张工作簿,每张工作表都有相同的格式。我想抓住" Sheet2"从每个工作簿中将它们粘贴到单独的工作簿中的主工作表中。我已设法做到这一点,但粘贴不断覆盖最后一个粘贴。如何在最后粘贴的条目下方粘贴?

我对7张中的每一张都有这个

Sub MoveHR()
Dim x As Workbook
Dim y As Workbook

'## Open both workbooks first:
Set x = Workbooks.Open("\\ukkh1-afp-sv1o\Shared\Sales\Field Sales - 

ERN\DSRs\. DSR's February 2016\HRehman February.xlsm")
Set y = Workbooks.Open("\\ukkh1-afp-sv1o\Shared\Sales\Field Sales - ERN\DSRs\Trackers\SIMPosa Tracker.xlsm")

'Now, copy what you want from x:
x.Sheets("SIMPosa").Range("A:J").Copy

'Now, paste to y worksheet:
y.Sheets("Current Month").Range("A1").PasteSpecial xlPasteValues

'Close x:
Application.CutCopyMode = False
x.Close False
y.Close True
End Sub

2 个答案:

答案 0 :(得分:0)

尝试添加循环以查找下一个空行,如下所示:

dim i as integer
i=1

do until y.sheets("Current Month").cells(i,1).value=""
    i=i+1
loop

y.Sheets("Current Month").Cells(i,1).PasteSpecial xlPasteValues

答案 1 :(得分:0)

更改此行:

y.Sheets("Current Month").Range("A1").PasteSpecial xlPasteValues

到此:

y.Sheets("Current Month").Range("A" & y.Sheets("Current Month").Rows.Count).End(xlup).Offset(1)).PasteSpecial xlPasteValues

第二行相当于转到工作表中的最后一行并点击Ctrl+Up并找到包含数据的最后一行,然后将其偏移1行以粘贴新数据。