在 VB.Net 中以编程方式更改分页符时抛出 COM 异常(代码 0x800A03EC)
-
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 对象引用。
不隶属于 StackOverflow