excel com组件的bug(字符超过911)

     最近开发一个工具,需要填写excel,研究接口后决定使用.net调用excel com组件的以二维数组(string[,])写的方法一次性写一个sheet,开发一切顺利,进程不能关闭问题也顺利解决,但是最后测试时发现一个问题始终无法解决,肯定重现,就是当需要写入某个cell中的字符数过多时,会捕捉到异常,检查程序其他地方并观察二维数据数据均无问题后,怀疑是excel com组件的问题(参数buffer设置不够,o(∩_∩)o...哈哈)。

     后经过反复测试,证明当字符数达到一定大小时就出错,其余情况均无问题。虽然后来采取其他方式规避,插入文本附件,但是还是在microsoft网站找到了问题描述,呵呵,但是偶的报错缺不是 1004 啊(白查了半天msdn,提醒什么时区错误),寒。。。后来看到这篇文章后,不经感慨。。原来官方预警文档中也有“可能会收到类似于以下内容的错误消息:”这样的语句。。。再寒。。。

   原文地址:

http://support.microsoft.com/kb/213841/zh-cn?spid=2512&sid=251

在 Excel 区域中插入大型数组字符串时出现“Run-time Error 1004”(运行时错误 1004)

文章编号:818808
最后修改:2003年11月26日
修订:1.1

症状

在 Office Excel 2003 中,当您以编程方式用包含大型字符串的数组设置某个区域值时,可能会收到类似于以下内容的错误消息:
Run-time error '1004'.
Application-defined or operation-defined error.

回到顶端

原因

如果数组(单元格区域)中有一个或多个单元格所包含的字符串被设置为包含 911 个以上的字符,就可能会发生此问题。

回到顶端

替代方法

要避免此问题,请编辑脚本,以便数组中的单元格所包含的字符串都不会包含 911 个以上的字符。

例如,下面的示例代码块中的以下代码行定义了一个包含 912 个字符的字符串:
Sub XLTest()
Dim aValues(4)
 
  aValues(0) = "Test1"
  aValues(1) = "Test2"
  aValues(2) = "Test3"
 
  MsgBox "First the Good range set."
  aValues(3) = String(911, 65)
  
  Range("A1:D1").Value = aValues
 
  MsgBox "Now the bad range set."
  aValues(3) = String(912, 66)
  Range("A2:D2").Value = aValues
 
End Sub

回到顶端

更多信息

字符串是一系列以组的形式进行操纵的字符。字符串的长度通常是它所包含的字符的数量,或者其长度是预先定义的(如同本示例中一样)。

回到顶端

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值