如何在vba中实现多线程和其他特定事项

时间:2010-08-31 15:00:11

标签: multithreading excel vba excel-vba

我有一张大约25张的电子表格。在一些特别是6,7,13,17,18,19的工作表中,我用数据库值填充它们。在一些工作表中,我填充了两个表的数据。 现在我需要创建一个按钮,它将执行以下操作。 在按钮单击事件中,我需要遍历所有工作表并查看是否已填充任何工作表。如果已填充,则将这些内容复制到文件中。我已经实现了将一个工作表内容复制到文件中。

问题1) 我无法理解如何处理多个文件。

问题2) 如何记录特定工作表已填充两个表值。因为我需要为每个表创建一个文件。

问题3) 最重要的是,这需要花费很多时间,因此我想加快操作,所以我想做多线程。任何其他提高速度的方法都会很棒。

1 个答案:

答案 0 :(得分:0)

程序从Excel读取数据时会有很大的时间开销。这可能是抱怨速度的最常见原因 为了最大限度地减少这种开销,您需要在每次读取时尽可能多地传输数据块 在VBA中,您可以通过为变量指定范围来执行此操作:
Dim vArr as variant
vArr=Range("A1:Z5000")

vArr现在将包含26列乘5000行的二维数组。

通过Interop使用.NET这种技术更为重要,因为时间开销甚至大于VBA。