Sub Cycle_with_Massive_zalivka_bez_cycles()
    Dim Naimenovanie As Variant
    Dim i%, j%
    Set Analiz = Workbooks("Vecher.xlsm").Sheets(Лист1.Name)
    Set TDSheet = Workbooks("ArtAlex.xlsx").Sheets("стр2 (2)")
    Application.ScreenUpdating = False
    For j = 1 To 238
'       Загружаем данные в массив
            With Analiz
                Naimenovanie = .Range(.Cells(1, 2), .Cells(21, 2)).Value
                Serial = .Range(.Cells(1, 7), .Cells(21, 7)).Value
                Postavchik = .Range(.Cells(1, 3), .Cells(21, 3)).Value
                Nomer_Dogovora = .Range(.Cells(1, 5), .Cells(21, 5)).Value
                Data_Dogovora = .Range(.Cells(1, 6), .Cells(21, 6)).Value
                Nomer_Scheta = .Range(.Cells(1, 11), .Cells(21, 11)).Value
                Data_Scheta = .Range(.Cells(1, 12), .Cells(21, 12)).Value
                Nomer_Nacladnaya = .Range(.Cells(1, 4), .Cells(21, 4)).Value
                Summa = .Range(.Cells(1, 13), .Cells(21, 13)).Value
            End With
'     Кидаем данные из массива в шаблон TDSheet
            For i = 1 To 21
                            TDSheet.Cells(i + 3, 3) = Naimenovanie(i, 1)
                            TDSheet.Cells(i + 3, 4) = Serial(i, 1)
                            TDSheet.Cells(i + 3, 7) = Postavchik(i, 1)
                            TDSheet.Cells(i + 3, 8) = Nomer_Dogovora(i, 1)
                            TDSheet.Cells(i + 3, 9) = Data_Dogovora(i, 1)
                            TDSheet.Cells(i + 3, 10) = Nomer_Scheta(i, 1)
                            TDSheet.Cells(i + 3, 11) = Data_Scheta(i, 1)
                            TDSheet.Cells(i + 3, 12) = Nomer_Nacladnaya(i, 1)
                            TDSheet.Cells(i + 3, 17) = Summa(i, 1)
             Next i
'        Удаляем 21 строку с данными
             For r = 1 To 21
                Analiz.Rows(1).Delete
             Next r
'        Сохраняем  шаблон с именем Иванов и время текущее
           
                    Workbooks("ArtAlex.xlsx").Activate
                    strPath = "C:\Users\Отчеты Еженедельные\февраль"
                    On Error Resume Next
                    x = GetAttr(strPath) And 0
                    If Err = 0 Then
                        strDate = Format(Now, "hh-mm-ss-ms")
                        FileNameXls = strPath & "\" & "Иванов " & " " & strDate & ".xlsx"
                        ActiveWorkbook.SaveCopyAs Filename:=FileNameXls
                    Else
                        MsgBox "Папка " & strPath & " недоступна или не существует!", vbCritical
                    End If
    Next j
        Application.ScreenUpdating = True
End Sub |