在 VB.Net 中以编程方式更改分页符时抛出 COM 异常(代码 0x800A03EC)

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

  •  26-09-2019
  •  | 
  •  

我正在尝试使用 VB.Net Excel COM 互操作以编程方式更改程序生成的 Excel 电子表格上第一个水平分页符的位置。这样做的代码如下:

    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)

在设置 HPageBreaks 的行上,抛出 COM 异常代码 0x800A03EC,并且我无法真正找到与此搜索相关的内容。有人知道我在这里缺少什么吗?

有帮助吗?

解决方案

根据代码,似乎无法设置分页符的位置,或者有 0 个分页符,因此您正在访问无效的索引。测试这一点的快速方法是执行以下操作

  • 检查 Count 属性 xlActualWS.HPageBreaks 并查看有多少可用
  • 删除 Location 属性集并查看错误是否消失

此外,您可能应该删除 ReleaseComObject 称呼。这是一个很难正确获得的 API,并且 CLR 非常擅长自行清理 COM 对象引用。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top