我看不出錯誤在哪裏。下一個沒有錯誤,同時添加新的If功能VBA
這是目前我的代碼:
For Each Rng3 In Range("$A$3:$A$1000")
If Rng3.Value = "Account Credit (Debit G/L)" Then
If Rng3.Offset(0, 8).Value = "IVR Risk" Then
If Rng3.Offset(0, 1).Value = 0 Or Rng3.Offset(0, 1).Value > 0 Then
GLIVR = GLIVR + 1
Else: Rng3.ClearContents
End If
ElseIf Rng3.Offset(0, 8).Value = "Manual Risk" And Rng3.Offset(0, 9).Value = "No" And _
Rng3.Offset(0, 5).Value <> "812-519" Then
If Rng3.Offset(0, 1).Value = 0 Or Rng3.Offset(0, 1).Value > 0 Then
GLManual = GLManual + 1
ElseIf Rng3.Offset(0, 1).Value < 0 Then Rng3.ClearContents
End If
ElseIf Rng3.Offset(0, 8).Value = "Manual Risk" And Rng3.Offset(0, 9).Value = "Yes" And _
Rng3.Offset(0, 5).Value <> "812-519" Then
If Rng3.Offset(0, 1).Value = 0 Or Rng3.Offset(0, 1).Value > 0 Then
EFGLManual = EFGLManual + 1
End If
If Rng3.Value = "Account Credit (Debit G/L)" Then
If Rng3.Offset(0, 8).Value = "IVR Risk" Then
If Rng3.Offset(0, 5).Value <> "812-135" Then
If Rng3.Offset(0, 1).Value = 250 Or Rng3.Offset(0, 1).Value > 250 Then
GLIVR = GLIVR + 1
Else: Rng3.ClearContents
End If
ElseIf Rng3.Offset(0, 8).Value = "Manual Risk" And Rng3.Offset(0, 9).Value = "No" And _
Rng3.Offset(0, 5).Value <> "812-135" Then
If Rng3.Offset(0, 1).Value = 250 Or Rng3.Offset(0, 1).Value > 250 Then
GLManual = GLManual + 1
ElseIf Rng3.Offset(0, 1).Value < 0 Then Rng3.ClearContents
End If
ElseIf Rng3.Offset(0, 8).Value = "Manual Risk" And Rng3.Offset(0, 9).Value = "Yes" And _
Rng3.Offset(0, 5).Value <> "812-135" Then
If Rng3.Offset(0, 1).Value = 250 Or Rng3.Offset(0, 1).Value > 250 Then
EFGLManual = EFGLManual + 1
End If
End If
End If
下一頁Rng3
我沒有看到錯誤所在。
這是原來的代碼,我嘗試添加代碼:
For Each Rng3 In Range("$A$3:$A$1000")
If Rng3.Value = "Account Credit (Debit G/L)" Then
If Rng3.Offset(0, 8).Value = "IVR Risk" Then
If Rng3.Offset(0, 1).Value = 50 Or Rng3.Offset(0, 1).Value > 50 Then
GLIVR = GLIVR + 1
Else: Rng3.ClearContents
End If
ElseIf Rng3.Offset(0, 8).Value = "Manual Risk" And Rng3.Offset(0, 9).Value = "No" And _
Rng3.Offset(0, 5).Value <> "812-519" Then
If Rng3.Offset(0, 1).Value = 50 Or Rng3.Offset(0, 1).Value > 50 Then
GLManual = GLManual + 1
ElseIf Rng3.Offset(0, 1).Value < 25 Then Rng3.ClearContents
End If
ElseIf Rng3.Offset(0, 8).Value = "Manual Risk" And Rng3.Offset(0, 9).Value = "Yes" And _
Rng3.Offset(0, 5).Value <> "812-519" Then
If Rng3.Offset(0, 1).Value = 25 Or Rng3.Offset(0, 1).Value > 25 Then
EFGLManual = EFGLManual + 1
End If
End If
End If
下一頁Rng3
任何幫助將不勝感激。
謝謝。
@barrowc感謝您給我們解釋這使得有很大的意義。感謝您的建議,我已經解決了這個錯誤,但現在似乎還有另一個問題。這是現在的代碼:
'For Each Rng3 In Range("$A$3:$A$1000")
If Rng3.Value = "Account Credit (Debit G/L)" Then
If Rng3.Offset(0, 8).Value = "IVR Risk" Then
If Rng3.Offset(0, 1).Value = 0 Or Rng3.Offset(0, 1).Value > 0 Then
GLIVR = GLIVR + 1
Else: Rng3.ClearContents
End If
ElseIf Rng3.Offset(0, 8).Value = "Manual Risk" And Rng3.Offset(0, 9).Value = "No" And _
Rng3.Offset(0, 5).Value <> "812-519" Then
If Rng3.Offset(0, 1).Value = 0 Or Rng3.Offset(0, 1).Value > 0 Then
GLManual = GLManual + 1
ElseIf Rng3.Offset(0, 1).Value < 0 Then Rng3.ClearContents
End If
ElseIf Rng3.Offset(0, 8).Value = "Manual Risk" And Rng3.Offset(0, 9).Value = "Yes" And _
Rng3.Offset(0, 5).Value <> "812-519" Then
If Rng3.Offset(0, 1).Value = 0 Or Rng3.Offset(0, 1).Value > 0 Then
EFGLManual = EFGLManual + 1
ElseIf Rng3.Offset(0, 8).Value = "IVR Risk" And _
Rng3.Offset(0, 5).Value <> "812-135" Then
If Rng3.Offset(0, 1).Value = 250 Or Rng3.Offset(0, 1).Value > 250 Then
GLIVR = GLIVR + 1
Else: Rng3.ClearContents
End If
ElseIf Rng3.Offset(0, 8).Value = "Manual Risk" And Rng3.Offset(0, 9).Value = "No" And _
Rng3.Offset(0, 5).Value <> "812-135" Then
If Rng3.Offset(0, 1).Value = 250 Or Rng3.Offset(0, 1).Value > 250 Then
GLManual = GLManual + 1
ElseIf Rng3.Offset(0, 1).Value < 0 Then Rng3.ClearContents
End If
ElseIf Rng3.Offset(0, 8).Value = "Manual Risk" And Rng3.Offset(0, 9).Value = "Yes" And _
Rng3.Offset(0, 5).Value <> "812-135" Then
If Rng3.Offset(0, 1).Value = 250 Or Rng3.Offset(0, 1).Value > 250 Then
EFGLManual = EFGLManual + 1
End If
End If
End If
End If
Next Rng3
我遇到的新問題是與代碼的第二部分是:
ElseIf Rng3.Offset(0, 8).Value = "IVR Risk" And _
Rng3.Offset(0, 5).Value <> "812-135" Then
If Rng3.Offset(0, 1).Value = 250 Or Rng3.Offset(0, 1).Value > 250 Then
GLIVR = GLIVR + 1
Else: Rng3.ClearContents
End If
ElseIf Rng3.Offset(0, 8).Value = "Manual Risk" And Rng3.Offset(0, 9).Value = "No" And _
Rng3.Offset(0, 5).Value <> "812-135" Then
If Rng3.Offset(0, 1).Value = 250 Or Rng3.Offset(0, 1).Value > 250 Then
GLManual = GLManual + 1
ElseIf Rng3.Offset(0, 1).Value < 0 Then Rng3.ClearContents
End If
ElseIf Rng3.Offset(0, 8).Value = "Manual Risk" And Rng3.Offset(0, 9).Value = "Yes" And _
Rng3.Offset(0, 5).Value <> "812-135" Then
If Rng3.Offset(0, 1).Value = 250 Or Rng3.Offset(0, 1).Value > 250 Then
EFGLManual = EFGLManual + 1
End If
End If
End If
End If
下一頁Rng3
這部分似乎什麼也不做我的結果。這個代碼背後的想法是,當列5命名爲「812-135」時,我想清除250以下的值。如果值爲250或以上,我希望它顯示就像上面的行一樣。 對於「812-519」的代碼工作。基本上我想要顯示在「812-519」下顯示的相同結果顯示在「812-135」下,但不是任何值,只有大於或等於250的值。目前使用此代碼顯示所有值「812-135」(例如2,3,5,109,111等)
問題是?你想達到什麼目的?給出錯誤的行?請注意,問題越短和/或越清晰我們可以提供更多幫助 – Sgdva
您是否在設計太空船?從來沒有見過如此多層次的嵌套ifs。我建議你*重新考慮你的問題並重新組織你的代碼。 –
@sgva由於barrowc的評論,我現在修復了錯誤代碼。其目的是粘貼一組數據,並有一個宏,用於過濾掉需要的行和不需要的行。在我編輯之後,上述代碼的第二部分背後的想法是,當列5被命名爲「812-135」時,我想清除250以下的值。如果數值爲250或以上,我希望它顯示爲與「812-519」中的上述行一樣。基本上我想要顯示在「812-519」下顯示的相同結果顯示在「812-135」下,但只有值> 250 –