Итак, я создал серию формул на листе под названием Extractor в книге под названием «Processor *». Имя файла книги «Процессор *» обычно может быть разным, справа от него будут другие символы. Я намерен скопировать диапазон, охватывающий всю формулу, которую я создал на листе с именем «Extractor» книги «Процессор *», и вставить в другую книгу «INJ *» с именем файла, также имеющим переменные символы справа, и в частности в рабочий лист с именем «Таблица». После вставки этой формулы он выдаст результаты для различных ячеек, которые мне нужны из «INJ *» на основе некоторых условий, которые я уже установил в своей формуле. Обратите внимание, что формула работает нормально, когда я сам копирую и вставляю. Затем я хочу скопировать эти результаты на другой лист на «Процессоре *». Лист под названием «Расчет». Ниже приведен код, который я написал, но мне кажется, что я не могу заставить объект, определенный в операторе IF, работать вне оператора. У меня есть несколько таких файлов, с которыми я могу работать, буду очень признателен за вашу помощь. Спасибо!
Dim wb1 As Workbook, wb2 As Workbook, sh1 As Worksheet, sh2 As Worksheet, sh3 As Worksheet, sh4 As Worksheet, lrow As Long, lrow2 As Long, rng As Range
Dim Ct As Long
For Each WB In Application.Workbooks
wb1 = Null
If WB.Name Like "Processor*" Then
Ct = Ct + 1
WB.Activate
Set wb1 = ActiveWorkbook
Set sh1 = wb1.Sheets("Extractor")
Set sh2 = wb1.Sheets("calculation")
Exit For
End If
Next WB
If Ct = 0 Then MsgBox "File not open"
Dim Ct2 As Long
For Each WB In Application.Workbooks
If WB.Name Like "INJ*" Then
Ct2 = Ct2 + 1
WB.Activate
Set wb2 = ActiveWorkbook
Set sh3 = wb2.Sheets("Manager Report")
Set sh4 = wb2.Sheets("TABLE")
Exit For
End If
Next WB
If Ct2 = 0 Then MsgBox "File not open"
With wb1
sh1.Range("C38:J42").Copy wb2.sh4.Range("C38")
End With
With sh4
.Range("C42:J42").Copy
sh2.Range("A" & lrow2).PasteSpecial Paste:=xlPasteValuesAndNumberFormats
End With