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

Возврат файла WebAPI и загрузка не запускаются

Как вызвать модуль в этой книге в excel vba

Excel datasource в JasperReports / iReport: не удалось получить значение для поля «Дата» класса «java.sql.Date»

Как добавить то же значение к datatable от excel?

Условное форматирование с использованием списка с другого листа

путь к файлу ссылки из текстового поля vba

Макрос Excel – проверьте строку в ячейке, запустите подпрограмму, перейдите к следующей строке, сделайте это снова

Невозможно преобразовать строку даты в datevalue в Excel

Метод «Диапазон» объекта «Глобальный» не выполнен

Динамически размер верхней границы определяемого пользователем типа VBA

Трудности отправки рабочего листа по электронной почте с помощью кнопки SendWorksheet

Цикл «If Then» с копией и вставкой

Ссылка на переменные книги в Excel с использованием VBA

Как вернуть счет с помощью COUNTIF с помощью VLOOKUP

Добавление строки после последнего '.' в ячейке в Excel

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