VBA + 宏 + 对于每个单元格条件错误

问题描述

我想就以下代码寻求帮助。

一个“IF”条件运行良好,但“ELSE”条件在其中我想跳过第一个条件的复制和粘贴功能并继续循环不起作用并给我一条错误消息,看起来像这:

enter image description here

先谢谢你!给你更多的力量!

Sub IF_Loop3()

    Dim cell As Range
    For Each cell In Range("TablePrac[Animals]")
        If cell.Value <> "NULL" Then
            cell.Offset(0,-3).Value = cell.Value
            
        Else
        If cell.Value = " " Then
        Exit For
        
        End If
        
    Next cell

End Sub

解决方法

For Each cell In Range("TablePrac[Animals]")
        If cell.Value <> "NULL" Then
            cell.Offset(0,-3).Value = cell.Value
            
        Else If cell.Value = " " Then
             Exit For
             End If ' If cell.Value = " "
        End If 'If cell.Value <> "NULL" <= you forgot this one!
    Next cell
,

基于您的解释的新代码:

Sub IF_Loop3()
    Dim cell As Range
    For Each cell In Range("TablePrac[Animals]")
        If (cell.Value <> "NULL") and (cell.Value <> " ") Then
            cell.Offset(0,-3).Value = cell.Value
        End If
    Next cell
End Sub

执行复制/粘贴有两个条件:value <> "NULL"value <> " "。您只需将这两个条件放入 If 测试中,即可同时满足这两个条件。

如果您编写 Exit For,则意味着循环将中断,您的代码将继续执行循环之后的第一行,而不是循环的下一次迭代。