COM Исключение (код 0x800a03ec), брошенные при программе разрывов страницы в VB.Net
-
26-09-2019 - |
Вопрос
Я пытаюсь использовать VB.NET Excel Com Interop, чтобы программно изменить местоположение первой горизонтальной страницы разрыва на электронную таблицу Excel, создаваемая программой. Код для этого выглядит следующим образом:
Dim range As Excel.Range
xlActualWS.Activate()
xlActualWS.PageSetup.PrintArea = "$A$1:$K$68"
range = xlActualWS.Range("A68", "A68")
xlActualWS.HPageBreaks(1).Location = range
System.Runtime.InteropServices.Marshal.ReleaseComObject(range)
На линии установки HPagebreaks COM Code Code Code 0x800A03EC бросается, и я не могу найти вещь, связанную с этим поиском. У кого-нибудь есть идеи, что мне не хватает здесь?
Решение
На основании кода, похоже, что либо расположение перерыва страниц, не может быть установлено или что есть 0 разрыва страниц и, следовательно, вы получаете доступ к недействительному индексу. Быстрый способ проверить это - сделать следующее
- Проверьте свойство Count On
xlActualWS.HPageBreaks
и посмотрим, сколько доступны - Удалите набор свойств расположения и посмотрите, передается ли ошибка
Кроме того, вы, вероятно, должны удалить ReleaseComObject
вызов. Это очень сложное API, чтобы исправить, и CLR довольно хорош в уборке ссылок COM объекта на его собственной.