将工作表复制并粘贴到另一个工作簿,然后返回到您从中复制的工作簿

时间:2020-05-28 19:12:49

标签: excel vba

Sub CopyPasteDataInMaster()
    Dim Rng As Range
        Set Rng = Sheets("Consolidated").UsedRange
        Set Rng = Rng.Offset(1).Resize(Rng.Rows.Count - 1)
        Rng.Copy
        Workbooks.Open "S:\AAA.xlsx"
        Workbooks("AAA.xlsx").Sheets("NewData").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
    Workbooks("AAA.xlsx").Worksheets("NewData").Range("H:H").NumberFormat = "mm/dd/yyyy"
End Sub

Sub CopyPastePersonDataInMaster()
    Dim Rng As Range
        Set Rng = Sheets("ByPerson").UsedRange
        Set Rng = Rng.Offset(1).Resize(Rng.Rows.Count - 1)
        Rng.Copy
        Workbooks.Open "S:\AAA.xlsx"
        Workbooks("AAA.xlsx").Sheets("NewDataPerson").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
    Workbooks("AAA.xlsx").Worksheets("NewDataPerson").Range("I:I").NumberFormat = "mm/dd/yyyy"
End Sub

我想将这两个名称背靠背调用,但是当它仍然位于第一个粘贴的“ AAA”文件中而无法抓住第二个粘贴的“ ByPerson”工作表时,就会出现问题。

我必须针对多个不同的文件(多个副本位置,相同的目的地)运行此文件,并且无论我要从哪个工作表复制它,我都需要通用。

也许是一种“重新激活”我从第一个宏末尾复制的工作表的方法,因此当它运行第二个宏时,可以找到工作表名称。

感谢您的帮助。

新代码-看起来如何?现在可以正常使用了。感谢您的建议!

Sub NewCopyPasteMaster()
Dim wb As Workbook
Dim wb2 As Workbook
Dim ws1 As Worksheet
Dim ws2 As Worksheet
Dim Rng1 As Range
Dim Rng2 As Range
    Set wb = ActiveWorkbook
    Workbooks.Open "S:\AAA.xlsx"
    Set wb2 = ActiveWorkbook
    wb.Activate
    Set ws1 = wb.Sheets("Consolidated")
    Set ws2 = wb.Sheets("ByPerson")
    Set Rng = ws1.UsedRange.Offset(1).Resize(ws1.UsedRange.Rows.Count - 1)
    Set Rng2 = ws2.UsedRange.Offset(1).Resize(ws2.UsedRange.Rows.Count - 1)
    Rng.Copy
    wb2.Sheets("NewData").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
    wb2.Worksheets("NewData").Range("H:H").NumberFormat = "mm/dd/yyyy"
    Application.CutCopyMode = False
    wb.Activate
    Rng2.Copy
    wb2.Sheets("NewDataPerson").Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).PasteSpecial xlPasteValues
    wb2.Worksheets("NewDataPerson").Range("I:I").NumberFormat = "mm/dd/yyyy"
End Sub

0 个答案:

没有答案