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