COM Eccezione (codice 0x800A03EC) generata quando a livello di codice cambia le interruzioni di pagina in VB.Net

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

  •  26-09-2019
  •  | 
  •  

Domanda

Sto tentando di usare il VB.Net Excel interoperabilità COM per modificare a livello di codice la posizione della prima interruzione di pagina orizzontale su un foglio di calcolo di Excel generato dal programma. Il codice per farlo è la seguente:

    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)

Sulle HPageBreaks impostazione linea, codice di eccezione COM 0x800A03EC è gettato, e non riesco davvero a trovare una cosa relativa a questo ricerca. Qualcuno ha idea di cosa mi manca qui?

È stato utile?

Soluzione

In base onthe codice sembra che sia la posizione del l'interruzione di pagina non può essere impostata o che ci sono 0 interruzioni di pagina e, quindi, si sta accedendo un indice non valido. Un modo rapido per testare il tutto è quello di fare il seguente

  • Controllare la proprietà Count on xlActualWS.HPageBreaks e vedere quanti sono disponibili
  • Rimuovere il set della proprietà Location e vedere se l'errore scompare

Inoltre probabilmente si dovrebbe rimuovere la chiamata ReleaseComObject. Questo è un API molto difficile ottenere corretto e il CLR è abbastanza bravo a ripulire i riferimenti a oggetti COM su di essa la propria.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top