提高循环性能

时间:2014-08-15 20:59:35

标签: excel vba excel-vba

我有一个基本循环,它将一个值放入一张纸上的单元格中,计算整个工作簿,并将一些值返回到另一张纸。返回的值取决于每次计算的整个工作簿。最初,这很好用,但现在我有更多的公式来计算循环太慢了。这个问题有一个共同的解决方案吗?下面是我的代码,但速度太慢了。

Application.ScreenUpdating = False

Dim wsRepository As Worksheet
Dim wsInput As Worksheet
Dim i As Integer

Set wsRepository = ThisWorkbook.Sheets("Repository")
Set wsInput = ThisWorkbook.Sheets("Input")

For i = 4 To 2004



           'add investment amount
           wsInput.Range("N13").Value = wsRepository.Range("B" & i).Value


           'copy back amounts
           wsRepository.Range("E" & i).Value = wsInput.Range("U12").Value

           wsRepository.Range("C" & i).Value = wsInput.Range("V12").Value

           wsRepository.Range("D" & i).Value = wsInput.Range("W12").Value


    Next i

wsInput.Activate

2 个答案:

答案 0 :(得分:0)

尝试使用Application.ScreenUpdating = FalseApplication.SCreenUpdating = True包围您对计算的调用。这可以显着改善您的表现,因为EXCEL在评估每个新值时都会停止尝试重绘屏幕。

答案 1 :(得分:0)

如果您不提供任何其他输入,将很难向您提供任何建议。

通常,VBA性能可以通过多种方式得到改善。以下是其中大部分内容: http://blogs.office.com/2009/03/12/excel-vba-performance-coding-best-practices/