Выбрать дату в календареВыбрать дату в календаре

Страницы: 1
Ошибка при повторном запуске макроса: Method 'Insert' of object 'Range' failed error
 
Добрый день!

Задача макроса: вставлять n-ое кол-во строк (задается Inputbox) перед именным диапазоном.
Проблема: при повторном запуске (редко и в первый раз) выдает ошибку "Method 'Insert' of object 'Range' failed error".
Отмечает строчки (либо-либо):
  1. wsWorkSheet.Range("Прочие").EntireRow.Insert
  2. rngMyCell.Offset(2, 0).EntireRow.Insert
Вопрос: почему так происходит и как устранить.
Код
Sub Файл_1()
Dim wsWorkSheet As Worksheet
Set wsWorkSheet = Workbooks("Файл 1.xlsm").Worksheets("Затраты")

Dim varRow As Variant

varRow = InputBox("Введите сколько строк добавить. Для выхода, ничего не вводите и нажмите ОК", "Добавление нового лота")

    If varRow = "" Then
        MsgBox "Не ввели кол-во строк", vbCritical
        Exit Sub
    ElseIf varRow <= 1 Then
        MsgBox "Слишком мало строк", vbCritical
        Exit Sub
    End If
    
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual

wsWorkSheet.Range("Шаблон").Copy                    'Копирование именного диапазона
wsWorkSheet.Range("Прочие").EntireRow.Insert        'Вставка скопированного перед именным диапазоном
Application.CutCopyMode = False

Dim strShablon As String, rngMyCell As Range, i As Long

strShablon = "Шаблон"

Set rngMyCell = wsWorkSheet.Range("Код_КП").Find(strShablon)

    If varRow = 2 Then
        rngMyCell.Offset(1, 0).Rows("1:1").EntireRow.Delete
        
    ElseIf varRow > 2 Then
        For i = 4 To varRow

        Range("Шаблон").Offset(1, 0).Rows("1:1").Copy
        rngMyCell.Offset(2, 0).EntireRow.Insert

        Next
    End If
    
Application.ScreenUpdating = True
Application.EnableEvents = True
Application.Calculation = xlCalculationAutomatic

MsgBox "Тест завершен!", vbInformation

End Sub

Как вызвать ошибку:
Если добавить например 8 (кол-во любое) строк, потом удалить и снова добавить уже меньше появляется ошибка. Требуется до 8 попыток.

Методы которые не помогли:
  • Изменение переменных
  • Вместо именного диапазона вставка по конкретной строчке, найденной ".Find"
  • Замена "EntireRow.Insert" на "Insert"
  • Указание диапазонов с адресом от книги до листа
Временно нашлось решение после первого добавления и удаления сохранять файл, но случаются "вылеты при первом запуске"

Буду рад любому совет.

Microsoft Office 2016
Страницы: 1
Наверх