У меня есть книга, которая содержит более 20 листов, я пытаюсь создать макрос, который при запуске скопирует 3 конкретных листа в новую книгу, но со значениями в месте назначения вместо формул и сохранит ее каксегодняшние дата и время, если предпочтительнее.
Мне удалось сделать несколько попыток сделать это по-разному, но независимо от того, каким образом у меня всегда возникают проблемы с его успешной работой.Наиболее согласованным является следующий код:
Sub CopyInNewWB()
Dim wbO As Workbook, wbN As Workbook
On Error GoTo ErrHandler
Application.ScreenUpdating = False
Application.Calculation = xlCalculationManual
Application.DisplayAlerts = False
Set wbO = ActiveWorkbook
Set wbN = Workbooks.Add
wbO.sheets("Tracking").Copy wbN.sheets(1)
wbO.sheets("Bridge").Copy wbN.sheets(2)
wbO.sheets("Overview (Age)").Copy wbN.sheets(3)
wbN.sheets("Sheet1").Delete
wbN.sheets("Customers").Activate
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.DisplayAlerts = True
ErrHandler:
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
Application.DisplayAlerts = True
End Sub
Это работает, так как создает новую рабочую книгу и копирует эти предполагаемые листы, но копирует формулы и ссылается на исходную рабочую книгу, к которой они пришли.от.Также независимо от того, что я добавляю в конец, он не будет сохранен как что-либо, кроме «Book1».В идеале он будет сохраняться в том же каталоге, что и рабочая книга, из которой он получен.