ПРИМЕЧАНИЕ. Я недавно спрашивал об этом, но не получил необходимой помощи, поэтому снова спрашиваю с изменениями в вопросе и коде. Извините!
У меня есть МЕСЯЧНЫЕ данные по районам, территориям и периодам (период = месяц) в серии из примерно 500 рабочих книг. Для каждого округа существует МАСТЕРСКАЯ рабочая тетрадь с отдельными рабочими листами для каждой территории, обобщающими ежемесячные данные.
Для этого необходимо открыть рабочую книгу MASTER каждого округа, открыть ежемесячные файлы каждого округа, найти рабочую таблицу территории в рабочей таблице MASTER, которая соответствует территории, указанной в ячейке в файле MONTHLY, вставить ежемесячные данные в территорию рабочей книги MASTER. лист, закройте ежемесячный файл, затем перейдите к следующему ежемесячному файлу.
Однако нам необходим код для создания листа NEW Territory, если территория добавляется в ежемесячные файлы округа через некоторое время после первоначального создания книги MASTER округа.
Написанный код не работает, потому что (кажется) он неправильно оценивает текущее МЕСЯЦЕВОЕ название территории по ВСЕМ возможным именам рабочей таблицы MASTER. Если совпадение найдено, оно должно скопировать, вставить, закрыть ежемесячный файл и перейти к следующему ЕЖЕМЕСЯЧНОМУ файлу. Если совпадения не найдены, он должен создать новый лист, скопировать, вставить, закрыть ежемесячный файл и перейти к следующему ЕЖЕМЕСЯЧНОМУ файлу. Любые предложения по исправлению этого?
Sub DSMReportsP02 ()
Dim DistrictDSM As Range, DistrictsDSMList As Range
Dim Period As String, Path As String, DistPeriodFile As String, Territory As String
Dim YYYY As Variant
Dim WBMaster As Workbook, DistMaster As Workbook, CurDstTerrFile As Workbook
Dim wsFind As Worksheet, SheetXXX As Worksheet
Dim wsCount As Integer, x As Integer
Set WBMaster = ActiveWorkbook
Period = Range("C6").Value
YYYY = Range("C8").Value
Set DistrictsDSMList = Range("E11:E" & Cells(Rows.Count, "E").End(xlUp).Row)
For Each DistrictDSM In DistrictsDSMList.Cells
Workbooks.Open Filename:="H:\Accounting\Monthend " & YYYY & "\DSM Files\DSM Master Reports\" & DistrictDSM & ".xlsx"
Set DistMaster = ActiveWorkbook
wsCount = Application.Sheets.Count
Path = "H:\Accounting\Monthend " & YYYY & "\DSM Files\" & DistrictDSM & "\P02"
DistPeriodFile = Dir(Path & "\*.xlsx")
Do While DistPeriodFile <> ""
Workbooks.Open Filename:=Path & "\" & DistPeriodFile, UpdateLinks:=False
DistPeriodFile = Dir
Set CurDstTerrFile = ActiveWorkbook
Territory = CurDstTerrFile.Sheets("Index").Range("A3").Value
For x = 1 To wsCount
If DistMaster.Worksheets(x).name = Territory Then
CurDstTerrFile.Sheets("Index").Range("F20").Copy 'PM
DistMaster.Sheets(Territory).Activate
Range("C3").PasteSpecial Paste:=xlPasteValues
End If
If DistMaster.Worksheets(x).name <> Territory Then
CurDstTerrFile.Sheets("Index").Range("F20").Copy 'PM
WBMaster.Sheets("ReptTemplate").Activate
Range("C3").PasteSpecial Paste:=xlPasteValues
WBMaster.Sheets("ReptTemplate").Copy after:=DistMaster.Sheets(DistMaster.Sheets.Count)
DistMaster.Sheets("ReptTemplate").name = DistMaster.Sheets("ReptTemplate").Range("A1").Value
End If
CurDstTerrFile.Close
Next x
Loop
Next DistrictDSM
End Sub