Com exceção (código 0x800a03ec) jogado ao alterar programaticamente as quebras de página em vb.net
-
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?
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.