开发者

COM Exception (code 0x800A03EC) thrown when programmatically changing page breaks in VB.Net

开发者 https://www.devze.com 2023-01-18 11:42 出处:网络
I am attempting to use the VB.Net Excel COM interop to programmatically change the location of the first horizontal page break on an Excel spreadsheet being generated by the program. Code to do so is

I am attempting to use the VB.Net Excel COM interop to programmatically change the location of the first horizontal page break on an Excel spreadsheet being generated by the program. Code to do so is as follows:

    Dim range As Excel.Range
    xlActualWS.Activate()
    x开发者_如何学ClActualWS.PageSetup.PrintArea = "$A$1:$K$68"
    range = xlActualWS.Range("A68", "A68")
    xlActualWS.HPageBreaks(1).Location = range
    System.Runtime.InteropServices.Marshal.ReleaseComObject(range)

On the line setting HPageBreaks, COM exception code 0x800A03EC is thrown, and I can't really find a thing related to this searching. Anyone have any idea what I'm missing here?


Based onthe code it looks like either the location of the page break cannot be set or that there are 0 page breaks and hence you're accessing an invalid index. A quick way to test this out is to do the following

  • Check the Count property on xlActualWS.HPageBreaks and see how many are available
  • Remove the set of the Location property and see if the error dissapears

Additionally you should probably remove the ReleaseComObject call. That's a very difficult API to get correct and the CLR is quite good at cleaning up COM object references on it's own.

0

精彩评论

暂无评论...
验证码 换一张
取 消