2014-07-24 37 views
1

我試圖連續計算工作表(在手動計算上設置),直到沒有更多錯誤。我在下面有下面的代碼,但它似乎並不能識別我設置的變量,因爲這些變量的值是公式的結果,而不是實際上單元格中的值作爲值。我看到另一個關於使用工作表函數的相關主題的問題,但一直無法看到如何將它適用於我的代碼。通常,如果我運行這個沒有VBA代碼的進程,我會手動計算5-6次,但是對於代碼我希望更加容易。我的代碼的其餘部分工作,這只是這個部分搞亂了這個過程。我想我可以像平常一樣在一個循環中計算一些任意數量的calc,但如果可能的話,我希望它只在下面兩個錯誤出現時才計算。請參閱下面的代碼段。基於VBA中的公式錯誤/值設置變量

Dim n As Variant 
    Dim na As Variant 
    n = "#N/A Requesting Data..." 
    na = "#N/A Invalid Override" 

    Application.ScreenUpdating = False 
    Application.Calculation = xlCalculationManual 

    For Each Cell In Range("AZ13:BQ82") 
     If Cell.Value = n Then 
      Sheet1.Calculate 
     End If 
    Next 

    For Each Cell In Range("AZ13:BQ82") 
     If Cell.Value = na Then 
      Sheet1.Calculate 
     End If 
    Next 
+0

和?你的代碼有問題嗎?一個錯誤 ? –

+0

我運行代碼後,仍然有錯誤留在我正在計算的單元格中,如果上面的代碼正常工作,則會消失。 – Doug

回答

1

IsError是你的朋友

Application.ScreenUpdating = False 
    Application.Calculation = xlCalculationManual 

    For Each Cell In Range("AZ13:BQ82") 
     If IsError(Cell.Value) Then 
      Sheet1.Calculate 
     End If 
    Next 
+0

+1。但是我會在'Calculate'之後添加一個'DoEvents'。 –