COM-Ausnahme (Code 0x800A03EC) ausgelöst, wenn programmatisch Seitenumbrüche Wechsel in VB.Net
-
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?
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.