Excel VBA Macro – метод копирования класса диапазона не удалось и метод Insert класса диапазона не прошел

Я написал макрос для копирования и вставки строк или столбцов в разных местах в зависимости от входной строки. Место расположения копий и вставки определяется в поле «Именованные диапазоны» в электронной таблице.

Если я хочу добавить несколько столбцов в том же разделе, все будет отлично. Если я добавлю хотя бы один столбец в один раздел, то хочу добавить столбец в другой раздел, я получаю одну из двух ошибок: метод копирования класса Range не удался ИЛИ метод Insert класса Range не удался

Я не смог понять, почему иногда метод копирования вызывает ошибку, а иногда и нет. Любая помощь будет принята с благодарностью.

Код:

Sheets("TL Master").Range("Insert" & strAddType).Copy 'Offset for row/column If strRowColumn = "row" Then 'Row = add value above Range("Insert" & strAddType).Insert Shift:=xlDown Range("Add" & strAddType & "ButtonCell").Offset(-4, 0).Value = strNewName Else 'Column = add value left Sheets("TL Master").Range("Insert" & strAddType).Insert Shift:=xlToRight Range("Add" & strAddType & "ButtonCell").Offset(0, -4).Value = strNewName If strAddType = "Machine" Then Range("Add" & strAddType & "ButtonCell").Offset(0, -4).Interior.Color = clrComplexityColor End If 

В коде отсутствует имя листа. Например –

 Sheets("TL Master").Range("Insert" & strAddType).Copy 'Offset for row/column If strRowColumn = "row" Then 'Row = add value above Sheets("TL Master").Range("Insert" & strAddType).Insert Shift:=xlDown Sheets("TL Master").Range("Add" & strAddType & "ButtonCell").Offset(-4, 0).Value = strNewName Else 'Column = add value left Sheets("TL Master").Range("Insert" & strAddType).Insert Shift:=xlToRight Sheets("TL Master").Range("Add" & strAddType & "ButtonCell").Offset(0, -4).Value = strNewName If strAddType = "Machine" Then Range("Add" & strAddType & "ButtonCell").Offset(0, -4).Interior.Color = clrComplexityColor End If 

Другая вещь, которую я хотел бы отметить, – это то, что ваши данные Offset заставляют данные заклеиваться за пределами листа, это вызовет ошибку. Например, если ваш именованный диапазон равен A1: A10, и вы делаете, а Offset (0, -1), это отключено от листа и вызывает ошибку.

Надеюсь это поможет.

Interesting Posts

проверка достоверности данных с использованием отдельных критериев в таблице

Excel VBA тип ошибки «13» typemismatch

Код VBA, чтобы выделить определенный диапазон (дополнение к коду электронной почты)

Ошибка VBA 91 – извлечение данных из нескольких книг / рабочих листов

Проблема при копировании данных один Excel в другой Excel с использованием VBSCript

Перемещение данных из MS Word в Excel

читать несколько листов excel selenium-webdriver, java, eclipse

Импорт таблиц электронной таблицы Excel в базу данных SQL Server

Python: добавьте данные в рабочий лист, не удаляя другие рабочие листы в рабочей книге

Excel находит точную подстроку в ячейке

Сделайте два значения в ячейке сортируемым

Рабочий лист.CodeName empty

Как определить, выполняется ли фоновый запрос excel ODBC

Заполнить строку цветом после копирования на новый лист

Python Openpyxl добавляет список в последовательности каждой пустой ячейки в столбце

Давайте будем гением компьютера.