Com exceção (código 0x800a03ec) jogado ao alterar programaticamente as quebras de página em vb.net

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

  •  26-09-2019
  •  | 
  •  

Pergunta

Estou tentando usar o VB.net Excel Com Interop para alterar programaticamente o local da primeira quebra de página horizontal em uma planilha do Excel sendo gerada pelo programa. O código a fazer é o seguinte:

    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)

Na definição da linha HPAGEBLES, o código de exceção COM 0x800A03EC é lançado e não consigo encontrar nada relacionado a essa pesquisa. Alguém tem alguma ideia do que estou perdendo aqui?

Foi útil?

Solução

Com base no código, parece que a localização da quebra da página não pode ser definida ou que existem 0 quebras de página e, portanto, você está acessando um índice inválido. Uma maneira rápida de testar isso é fazer o seguinte

  • Verifique a propriedade de contagem em xlActualWS.HPageBreaks e veja quantos estão disponíveis
  • Remova o conjunto da propriedade Location e veja se o erro desaponta

Além disso, você provavelmente deve remover o ReleaseComObject ligar. Essa é uma API muito difícil de se correr correndo e o CLR é muito bom em limpar as referências de objetos com suas próprias.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top