2014-09-02 56 views
-2
Columns("DV").Cut 
Columns("P").Insert Shift:=xlToRight 

我使用上面的代码基本上移动一列,但每次运行宏时,它会减慢这一过程。有没有更有效的方式来做到这一点,所以我的宏没有陷入困境?切割一个列,然后插入excel vba

谢谢。

+0

让我也做一个更新,说宏先创建一个副本,然后在副本内我的副本执行上述代码。 – user3562334 2014-09-02 22:59:40

+0

你的完整代码是什么? – brettdj 2014-09-03 04:09:49

回答

1

你可以尝试在宏观的开头插入该行:

Application.Calculation = xlCalculationManual 

,并在末尾插入这样的:

Application.Calculation = xlCalculationAutomatic 

如果你在你的数据有很多公式在宏运行时尝试重新计算它。以上几行将告诉Excel在宏运行期间不计算。

+1

这并未影响宏。宏首先粘贴值,然后创建副本,然后移动副本上的列,以便没有必须重新计算的公式。 – user3562334 2014-09-02 23:02:39

+0

你处理了多少行和列?因为你要去DW,所以我假设很多。答案可能是逐步复制,而不是制作一个大副本,然后移动数据。 IE _Columns(“A:O”)。复制表单(yourSheet).Columns(“A:O”)_,然后_Columns(“DV”)。复制表单(yourSheet).Columns(“P”)_,然后_Columns (“P:DV”)。复制表格(yourSheet).Columns(“Q:DW”)_等等*编辑*此解决方案需要制作新的空白表格以将数据复制到第一个表格中。 – 2014-09-02 23:27:58

相关问题