Мне нужно решение для циклического перемещения по ряду округов, чтобы открывать сводные файлы, связанные с этими округами, а затем циклически просматривать листы для конкретных территорий в этих файлах округов, используя отдельный диапазон имен территорий. Цель состоит в том, чтобы скопировать данные из второй рабочей книги в столбце для конкретной территории в соответствующую рабочую книгу территории в сводных файлах округа.
Диапазон округов находится в столбце одной рабочей книги, а диапазон территорий - в первом ряду второй рабочей книги. Количество строк в первой книге и количество столбцов во второй книге могут меняться от месяца к месяцу. Можете ли вы предложить, как лучше всего это сделать? Параметр «Union» выдал ошибку. Вот частичный код, который у меня есть:
Sub CustBanks3()
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.DisplayAlerts = False
Dim WBMaster As Workbook, CustBank As Workbook, SSBMaster As Workbook, DistMaster As Workbook, CurDstTerrFile As Workbook
Dim wsCB As Worksheet, wsSSB As Worksheet
Dim PivotCol As Range, PivotRow As Range, SSBCol As Range, SSBRow As Range
Dim Period As String, YYYY As Variant
Dim DistrictDSM As Range, DistrictsDSMList As Range, CBTerr As Range, CBTerrList As Range, rLastCell As Range
Dim Path As String, DistPeriodFile As String, Territory As String, District As String, PCol As String, CBDist As String
Dim wsFind As Worksheet, Wksht As Worksheet
Dim wsCount As Integer, x As Integer, Z As Integer, FoundFlag As Boolean, LastCol As Long
Set WBMaster = ThisWorkbook
Period = WBMaster.Sheets("START").Range("C6").Value
YYYY = WBMaster.Sheets("START").Range("C8").Value
WBMaster.Sheets("START").Activate
Set DistrictsDSMList = Range("E11:E" & Cells(Rows.Count, "E").End(xlUp).Row)
Set CustBank = Workbooks.Open("H:\Accounting\Monthend " & YYYY & "\Customer Bank Reports\CB " & Period & Right(YYYY, 2) & ".xlsx")
CustBank.Worksheets("Terr Summary").Activate
Set Wksht = CustBank.Worksheets("Terr Summary")
Set rLastCell = Wksht.Cells.Find(What:="*", After:=Wksht.Cells(1, 1), LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False)
LastCol = rLastCell.Column
Set CBTerrList = CustBank.Worksheets("Terr Summary").Range("A2:A" & LastCol)
For Each CBTerr In Union(DistrictsDSMList, CBTerrList).Cells 'IS THIS HOW TO DO IT???
Set DistMaster = Workbooks.Open("H:\Accounting\Monthend " & YYYY & "\DSM Files\DSM Master Reports\" & DistrictDSM & ".xlsx", _
UpdateLinks:=False)
wsCount = DistMaster.Sheets.Count
District = Left(DistrictDSM, InStr(DistrictDSM, " DSM"))
For x = 1 To wsCount
If DistMaster.Worksheets(x).name = Territory Then
FoundFlag = True
CurDstTerrFile.Sheets("Index").Range("F20").Copy 'PM
DistMaster.Sheets(Territory).Range(PCol & "3").PasteSpecial Paste:=xlPasteValues
End If
Next x
Loop
End sub