Если предположить, что вы создаете новый рабочий лист с именем «Обзор клиента» вручную или каким-либо другим способом, который не показан, я считаю, что приведенный ниже код поможет вам достичь желаемого результата.
По сути, это будет выглядеть для рабочего листа с именем "Client Review*"
(назовем этот рабочий лист A), затем скопируйте диапазоны из этого рабочего листа в "Client Review"
(рабочий лист B), а затем он удалит A и переименует B, чтобы на нем была отметка даты, поэтому когда вы повторно запустите это в другой день, когда вы воссоздали рабочий лист "Client Review"
(т.е. рабочий лист A).
Если все, что я сказал выше, имеет смысл, тогда вам нужно будет обновить формулу для K16 один раз вы воссоздали рабочий лист Client Review
.
Я добавил еще один l oop, похожий на ваш, чтобы гарантировать, что каждый рабочий лист с именем Client*
имеет формулу ("='" & ws.Name & "'!J3"
)
Sub CopyOldToNew()
Application.ScreenUpdating = False: Application.DisplayAlerts = False: Application.AskToUpdateLinks = False 'For less lag
Dim wsClientReview As Worksheet: Set wsClientReview = ThisWorkbook.Worksheets("Client Review")
Dim wsPreviousClientReview As Worksheet
Dim ws As Worksheet
On Error GoTo ErrorTrue
today = Format(Date, "MM.DD.YYYY")
For Each wsPreviousClientReview In ThisWorkbook.Worksheets
If wsPreviousClientReview.Name Like "Client Review*" And wsPreviousClientReview.Name <> "Client Review" Then
'wsPreviousClientReview.Activate
Exit For
End If
Next ws
wsPreviousClientReview.Range("A22:N250").Copy
wsClientReview.Range("A22:N250").Paste
wsClientReview.Range("J3").Value = wsPreviousClientReview.Range("J3").Value
wsClientReview.Range("G8:H12").Value = wsPreviousClientReview.Range("G8:H12").Value
wsClientReview.Name = "Client Review " & Format(Date, "mm.dd.yyyy")
ws.Delete
wsClientReview.Move before:=Thisworbkook.Sheets(1)
For Each ws In Worksheets
If ws.Name Like "Client*" Then
ws.Range("K16").Value = wsClientReview.Range("J3").Value
End If
Next ws
Application.ScreenUpdating = True: Application.DisplayAlerts = True: Application.AskToUpdateLinks = True
Exit Sub
ErrorTrue:
MsgBox "No manually added sheets identified."
Alert.Activate
Application.ScreenUpdating = True: Application.DisplayAlerts = True: Application.AskToUpdateLinks = True
End Sub