COM-Ausnahme (Code 0x800A03EC) ausgelöst, wenn programmatisch Seitenumbrüche Wechsel in VB.Net

StackOverflow https://stackoverflow.com/questions/3815544

  •  26-09-2019
  •  | 
  •  

Frage

Ich versuche, die VB.Net Excel COM-Interop zu verwenden, um programm der Position des ersten horizontalen Seitenumbruchs ändert auf einer Excel-Tabelle durch das Programm erzeugt wird. Code zu tun, so ist wie folgt:

    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)

Auf der Linie Einstellung HPageBreaks, COM-Ausnahmecode 0x800A03EC wird geworfen, und ich kann eine Sache nicht wirklich zu dieser Suche im Zusammenhang finden. Wer noch keine Ahnung, was ich hier fehlt?

War es hilfreich?

Lösung

Auf der Grundlage onthe Code es so aussieht, entweder die Lage des Seitenumbruchs nicht eingestellt werden kann, oder dass es 0 Seitenumbrüche und daher sind Sie einen ungültigen Index zugreifen. Eine schnelle Möglichkeit, diese aus zu testen, ist die folgende

zu tun
  • Überprüfen Sie die Count-Eigenschaft auf xlActualWS.HPageBreaks und sehen, wie viele sind verfügbar
  • Nehmen Sie den Satz von der Location-Eigenschaft und sehen, ob der Fehler verschwindet

Außerdem sollten Sie den ReleaseComObject Anruf entfernen. Das ist eine sehr schwierige API zu erhalten korrekt und die CLR ist ziemlich gut bei COM-Objekt Referenzen Reinigung auf seinem eigenen ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top