2015-09-27 170 views
-4

這是我第一次發佈到論壇,如此裸露與我。我有一個相當廣泛的工作簿,有數千個參考。我的老闆想讓我爲所有項目製作一份GP,利潤和費用的綜合列表,但這樣做很容易,我需要刪除所有「#N/A」單元而不損害此類單元格公式的完整性。 AKA我不只是想清除返回「#N/A」的單元格,而是使用= IFERROR(單元格,0)開始每個公式。有人可以幫我寫一個VBA代碼,將每個單元格放在選定的工作表上並插入一個IFERROR返回「0」? VBA只能在選定的工作表上工作,這一點很重要,因爲我不希望整個工作簿被IFERROR語句覆蓋。Iferror返回0爲工作表VBA

謝謝

+0

你需要寫一個一次性的宏,將編輯所有的公式在給定的範圍指定並用'IFERROR([原創配方],「0」),把它包' - 如果您遇到特定問題,您需要發佈相關代碼並解釋問題所在。現在,這個問題對於這個網站來說太寬泛了,你基本上要求我們給你工作代碼,這超出了本網站的範圍。 –

回答

0
Sub WrapIFERROR() 
    Dim Cell As Range 
    For Each Cell In ActiveSheet.UsedRange.SpecialCells(xlCellTypeFormulas) 
     Cell.Formula = "=IFERROR(" & Mid(Cell.Formula, 2) & ",0)" 
    Next 
End Sub 
+1

如果您首先使用'SpecialCells'獲取包含公式的所有單元格,則更好。 「使用範圍」可能很大。 – user1016274

+0

@ user1016274,好點!我編輯了答案。 – omegastripes

+0

我現在完全放棄'.UsedRange',因爲它不可靠。也許你應該測試該單元格不以「= IFERROR」開頭。 – user1016274