2012-03-14 72 views
2

我必須清除#N/A發生在我的工作表時,當我運行我的代碼。我不知道爲什麼,並且已經調試了一段時間,但無濟於事。我能做些什麼來彌補這個問題,就是將它從網頁中完全刪除,並隨機發生。如果有人知道如何與我分享VBA代碼。做一個簡單的複製和如何刪除在工作表中出現的#N/A? (VBA爲Excel需要)

代碼粘貼到另一個工作表

thevaluestocopy = Sheets("pivot").Cells(thefirstrow, 1) _ 
    .Resize(thelastrow - thefirstrow, 1) 
    Worksheets("summary").Cells(3, 16) _ 
    .Resize(thelastrow - thefirstrow + 1, 16) = thevaluestocopy 

我有嵌套不同的列代碼,因爲我的數據透視表改變的大部分時間。而當我第二次複製,#N/A出現..不知道爲什麼,我相信這個作品正常工作。

+1

請發表您的一些碼。如果'#N/A'由於運行你的代碼而在某些單元中出現,那麼你的代碼就有問題了。 – 2012-03-14 14:07:08

+0

我正在做一個簡單的複製並從表單粘貼到另一個..但是當它試圖做同樣的事情時,值與#N/A一起出現..如果你知道爲什麼,分享它。我希望這篇文章對您來說太短了,無法理解我想要做什麼,或者您可以與我分享如何複製固定的值列。也可以解決這個問題。 – user1204868 2012-03-14 14:14:53

+0

源代碼表是否有'#N/A'?如果不是,那麼你可以使用'PasteSpecial Values'來做一個拷貝並粘貼爲@mattboy建議的。 – 2012-03-14 14:44:24

回答

10

您可以運行此行到工作表中刪除任何#N/A誤差值:

Cells.Replace "#N/A","",xlWhole 

如果工作表中包含公式,你可以試試這個:

Cells.SpecialCells(xlCellTypeFormulas,xlErrors).Clear 
+0

謝謝!那就是我正在尋找的! – user1204868 2012-03-15 00:38:58

2

我不知道,但如何做這樣的事情?這是我通常如何複製和粘貼,沒有問題。

Sheets("pivot").Range("your range").Copy 
Worksheets("summary").Range("your range").PasteSpecial 

UPDATE 如果你還是想簡單地刪除所有的#N /與你當前的代碼,你可以使用一些這樣的代碼。

If WorksheetFunction.IsNA(Cells(row, column)) Then Cells(row, column).ClearContents 
+0

嗨,感謝您的回答!我認爲採用「你的範圍」方式很難,因爲價值不固定,因此可能需要執行一些檢查。無論如何,刪除已經足夠了 – user1204868 2012-03-15 00:38:30

+1

沒問題。我對你正在做的整個Resize事情不是很熟悉,但我相信這仍然會返回一個範圍,所以執行'Sheets(「pivot」)。Cells(thefirstrow,1).Resize(thelastrow - thefirstrow ,1).Copy'和'.PasteSpecial'應該可以工作。 – mattboy 2012-03-15 09:39:31

相關問題