由于引用其他电子表格,VBA代码运行缓慢

时间:2017-05-25 21:03:56

标签: vba excel-vba excel

我有以下VBA代码,它计算表中有多少行,然后从每隔一行(电子表格A)中提取数据。我有另一个电子表格(电子表格B),它使用匹配和间接公式从此代码的输出中获取数据。当我只使用电子表格A运行代码时,它运行得非常快。如果我在电子表格A中运行代码时打开电子表格B它运行速度慢得多,我猜测是因为它试图在代码运行时抓取数据。有没有办法让代码运行并阻止其他电子表格访问数据,直到代码完成?每次我需要运行代码时关闭电子表格B都很不方便。

Sub GetTopForces()

    Application.ScreenUpdating = False

    Dim i, j, count, cell As Integer

    count = 0
    cell = 1
    i = 0
    j = 0

' get count
    Do While cell <> 0
      cell = Cells(count + 4, 1).Value      
      count = count + 1      
    Loop

' get forces on top of column only
    Do While i < count
      Cells(4 + i, 16).Value = Cells(5 + j, 1).Value
      Cells(4 + i, 17).Value = Cells(5 + j, 2).Value
      Cells(4 + i, 18).Value = Cells(5 + j, 3).Value
      Cells(4 + i, 19).Value = -1 * Cells(5 + j, 5).Value
      Cells(4 + i, 20).Value = Cells(5 + j, 9).Value
      Cells(4 + i, 21).Value = Cells(5 + j, 10).Value

      i = i + 1
      j = j + 2   
    Loop

    Application.ScreenUpdating = True

End Sub

我对VBA的了解是基本的,所以我很感激任何建议。谢谢:))

0 个答案:

没有答案