首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VB >

数据从剪贴板粘贴到EXCEL的有关问题

2012-02-01 
数据从剪贴板粘贴到EXCEL的问题本人在VB下生成EXCEL报表,先把要写入的数据组装起来然后放到数组当中去,用c

数据从剪贴板粘贴到EXCEL的问题
本人在VB下生成EXCEL报表,先把要写入的数据组装起来然后放到数组当中去,用chr(9)和Chr(13)Chr(10)把它们按行列分隔开,然后统一放到剪贴板上,再把数据复制到EXCEL当中,这样速度可以比一个个写快很多。但是有个问题,就是如果有数据本身包含有回车换行符{既chr(13)chr(10)}的话,这样粘贴的时候就会把回车换行后的值写入到下一个单元格当中去,请问在复制粘贴的方法下要如何解决呢?

另外我发现有的繁体中文的数据直接写入单元格没问题,但是一从剪贴板过去的话就程序报错了。这是为什么呢?请大家帮忙,谢谢。

[解决办法]
数组可以直接赋值到 excel 的 range,比一格一格写快,比通过剪贴板处理安全。

...range( "A1:B10 ").value=arrData



[解决办法]
让Excel得到聚焦。发送Ctrl+V键,即可!
Ctrl+V,好像是这样写SendKeys "^V "

建议还是采用Excel对象编程好一点。
[解决办法]
回复人:fxy_2002(阿勇) ( 两星(中级)) 信誉:100 2007-8-8 9:06:53 得分:0

数组可以直接赋值到 excel 的 range,比一格一格写快,比通过剪贴板处理安全。

...range( "A1:B10 ").value=arrData

这样用会更快:
objSheet.range( "A1:B10 ").Range(UBound(arrData, 1) - LBound(arrData, 1) + 1, UBound(arrData, 2) - LBound(arrData, 2) + 1).Value = arrData

[解决办法]
这样用会更快:
objSheet.range( "A1:B10 ").Range(UBound(arrData, 1) - LBound(arrData, 1) + 1, UBound(arrData, 2) - LBound(arrData, 2) + 1).Value = arrData


---------------

难道我的excel版本低?用我原来的写法没问题,用这个写法得了个错误:应用程序定义或对象定义错误!

热点排行