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

时间:2010-09-28 17:43:55

标签: vb.net com office-2003

我正在尝试使用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,我无法找到与此搜索相关的内容。任何人都知道我在这里缺少什么?

1 个答案:

答案 0 :(得分:1)

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

  • 检查xlActualWS.HPageBreaks上的计数属性,看看有多少可用
  • 删除Location属性的集合,查看错误是否消失

此外,您应该删除ReleaseComObject电话。这是一个非常难以正确的API,CLR非常擅长清理它自己的COM对象引用。