Исключение COM (код 0x800A03EC), возникающее при программном изменении разрывов страниц в VB.Net - PullRequest
0 голосов
/ 28 сентября 2010

Я пытаюсь использовать COM-взаимодействие VB.Net Excel для программного изменения местоположения первого горизонтального разрыва страницы в таблице 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 0x800A03EC, и я не могу найти вещь, связанную с этим поиском.Кто-нибудь знает, что я здесь скучаю?

1 Ответ

1 голос
/ 28 сентября 2010

Исходя из кода, похоже, что нельзя установить местоположение разрыва страницы или что имеется 0 разрывов страницы, и, следовательно, вы получаете доступ к недопустимому индексу. Быстрый способ проверить это - сделать следующее:

  • Проверьте свойство Count на xlActualWS.HPageBreaks и посмотрите, сколько доступно
  • Удалите набор свойства Location и посмотрите, исчезает ли ошибка

Кроме того, вам, вероятно, следует удалить вызов ReleaseComObject. Это очень сложный API, чтобы его исправить, и CLR достаточно хорош для очистки ссылок на COM-объекты самостоятельно.

...