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