У меня есть основная рабочая книга, в которой находится группа из 15 рабочих таблиц, в которых хранятся данные сводных сводных таблиц и тому подобное. Каждую неделю эта главная рабочая книга обновляется ежедневным отчетом, в котором есть эти 15 листов, а также около 20 других. Я просто пытаюсь собрать сценарий, чтобы определить, существуют ли они, и если да, переместить эти ежедневные данные на рабочий лист главной книги (перемещать данные, только если master workbook
существует в *1002*).
Вот очень общая оболочка того, чего я пытаюсь достичь, но я не очень хорошо разбираюсь в определении логики c, если лист существует, поэтому моя переменная blnFound
явно неуместна. Я надеюсь, что это показывает грубую схему того, чего я пытаюсь достичь. Любая помощь с благодарностью!
Option Explicit
Sub Update_New_Data()
Const BasePath As String = "C:\\User\Data..."
Dim wbMaster As Workbook: Set wbMaster = ThisWorkbook
Dim wbNewData As Workbook: Set wbNewData = Workbooks.Open(BasePath & "\03.01.20.xlsx")
Dim wsMaster As Sheet
Dim blnFound As Boolean
'places all sheet names into array
With wbNewData
Dim varWsName As Variant
Dim i As Long
Dim ws As Worksheet
ReDim varWsName(1 To wbNewData.Worksheets.Count - 2)
For Each ws In wbNewData.Worksheets
Select Case ws.Name
Case "Inputs", "Data --->>>"
Case Else
i = i + 1
varWsName(i) = ws.Name
End Select
Next
End With
'if wbNewData sheet name is found in wbMaster
'then locate it and place wbNewData data into that sheet
With wbMaster
For Each wsMaster In wbMaster.Sheets
With wsMaster
If .Name = varWsName(i) Then
blnFound = True
wbNewData(Worksheets(i)).UsedRange.Copy Destination:=wbMaster(Worksheets(i)).Range("A1")
Else: blnFound = False
End If
End With
Next
End With
End Sub