2010-09-03 116 views
0

我想用VBA填充一个excel电子表格(实际上是使用COM服务器的不同东西,但它是相同的语法)。这是我想要在Excel中编写用于格式化和演示目的的报告。由于所涉及的技术,CSV出口和其他技术超出了等式。因此,我能够在每个单元格中写入每个值,但是它非常缓慢,因此,我决定一次写入一堆值(比方说每次250条记录)。所以我存储由回车分隔的值,如果我复制/粘贴使用VBA它完美的作品。在Excel中使用vba模拟粘贴操作

问题是,我无法使用剪贴板(因为报表多次同时执行),所以我可以在不使用剪贴板的情况下从Excel中的值列表中模拟粘贴操作(或其他类似操作)?

感谢,

回答

1

复制在VBA值我知道的最快方法是

Range("destrange") = Range("srcrange") 

destrangesrcrange应该是相同的大小。也不会复制格式化数据等。

编辑:这是东西,可能是usefull

+0

嗨,我不能使用复制范围,但链接显示几个选项,导入文本文件是办法在我的情况下。 Thx – pedromarce 2010-09-03 18:55:01

1

您可以创建Variant秒的阵列,并将其分配给一个范围:

Dim v() As Variant 

    ReDim v(1 To 20, 1 To 10) 
    'Fill v 
    v(5, 5) = 42 
    '... 

    Range("a1:j20").Value = v 
+0

这是一个非常好的选择,但在我的环境中,我无法定义Variant变量。 – pedromarce 2010-09-03 18:55:45