Обновлено 2/12:
VBA на помощь. Создано событие в Excel / VBA, которое вставляет строки при запуске из VB. net.
Если есть быстрый ответ на проблему, описанную ниже, пожалуйста, поделитесь. В противном случае не стоит беспокоиться.
Попытка использовать код в VB. net для вставки строки в электронную таблицу Excel. Вот код: xlWorkSheet.Rows.Insert (xlNextOutput, 1) '(строка, количество строк для вставки) xlNextOutput = 51
При выполнении это вызывает следующее сообщение об ошибке:
System.Runtime.InteropServices.COMException: 'Can't push objects off the sheet.'
Синтаксис команды выглядит правильным, но ошибки во время выполнения.
Этапы устранения неполадок:
- Проверен доступ к электронной таблице и возможность взаимодействия с объектами Excel:
Str1 = "B" & LTrim(Str(xlNextOutput)) & ":B" & LTrim(Str(xlNextOutput))
Str2 = "B" & LTrim(Str(xlNextOutput + 1)) & ":B" & LTrim(Str(xlNextOutput + 1))
' copy a cell in row 51 to row 52 -- this works ******
xlWorkSheet.Range(Str2).Value = xlWorkSheet.Range(Str1).Value
Str1 = "A" & LTrim(Str(xlNextOutput)) & ":ZZ" & LTrim(Str(xlNextOutput))
' clear contents of row 51 -- this works ******
xlWorkSheet.Range(Str1).ClearContents()
По результатам поиска по сообщению об ошибке ... определено, что "последняя" ячейка в электронной таблице не находится в максимальной строке таблицы с использованием Ctrl + End . «Последней» ячейкой был BL42739. Насколько я понимаю, поскольку между этой ячейкой и концом таблицы есть много строк, вставка другой строки в строку 51 не должна быть проблемой.
Из поиска по сообщению об ошибке ... определил, что параметры Excel были правильными, чтобы избежать известной проблемы со вставкой строк.
Файл / Параметры / Дополнительно / Параметры отображения для этой книги / Для объектов show = All
Были и другие попадания при поиске сообщения об ошибке, но другие не показывались подходящими.
Поиск StackOverflow:
vb. net ошибка при вставке строки в таблицу Excel - без результатов
vb. net вставка строки в таблицу Excel - - несколько результатов, но не одна и та же проблема
При создании этого вопроса для SO были рассмотрены рекомендуемые вопросы.
Конечно, я что-то упустил.
Заранее спасибо за помощь!