2013-05-20 118 views
0

我有一個宏,在一個點上創建一個數據透視表。我的問題有時不是所有的值都在第二列,我得到一個錯誤。vba中的宏iferror語句excel

我想通過從列中獲取值相同的方式來解決這個問題。但使用這種方法,如果樞軸是相同的,我會得到一個「沒有找到特殊單元的錯誤」。

對不起讓我更清楚我有一個列A的合同名稱和列C是一個數據透視表,從另一個表中調出契約的價值。我得到錯誤的地方是B列有一個if語句,它基本上說C列是「是」,然後使用合同名稱。我仍然希望值,如果我當B列中的語句產生了錯誤

我想要的是一起令我深受你的問題感到困惑,並有一個強烈的感覺,有一種

For each cl in range("C1:C200") 
if error and cl.offset(0, 1).value = yes then  
cl.value = cl.offste(0, -1) Else 
Cl.value = cl.value 
End if 
+0

你在看什麼是一個錯誤,你沒有測試任何變量。你看看是否有錯誤嗎? – user2140261

+1

肖恩,你需要澄清。你提到了「第二列」,「關鍵點」,「樞軸點」以及與特殊單元格有關的錯誤。爲了得到答案,你需要擴展和闡述這些以及其他可能的項目。和往常一樣,向我們展示您的代碼。 –

+0

對不起,讓我更清楚我有一個合同名稱列A和列C是一個支點從另一個表中調出契約的價值。我得到錯誤的地方是B列有一個if語句,它基本上說C列是「是」,然後使用合同名稱。如果我在B列中的if語句產生錯誤 –

回答

1

東西線一個更好的解決您的問題,但我不能確定究竟你的問題是什麼,所以這裏是你的代碼的工作版本:

For each cl in range("C1:C200") 
    If IsError(cl) and cl.offset(0, 1).value = "yes" then  
     cl.value = cl.offset(0, -1) 
    End If 
Next cl 

或者這可能是更多你想要什麼:只能看看錯誤和使用如果v的左邊的值右邊的是yes

Sub error() 

Dim rngErrors As Range 

On Error Resume Next 

Set rngErrors = Range("C1:C200").SpecialCells(xlCellTypeFormulas, xlErrors) 

For Each rngcError In rngErrors 
    If cl.offset(0, 1).value = "yes" then  
     cl.value = cl.offset(0, -1) 
    End If 
Next rngcError 

On Error GoTo 0 

End Sub 

沒有必要爲您的原稿else彷彿If聲明不符合什麼都不會發生也無妨。除非你想刪除單元格中的公式。

+0

謝謝 –