删除行后无法重新运行宏

时间:2015-07-08 10:48:43

标签: excel vba excel-vba

我正在尝试运行代码来验证列“K”。如果列“K”中的任何单元格为空,则弹出错误消息,单元格应变为红色。我尝试了以下代码,它正在运行。以下是我的问题。 我运行宏。 宏检测到Null单元格并弹出错误消息。 我删除了Null单元格的行。 再次运行宏。 错误信息再次弹出。 K列的最后一个单元格变为红色,尽管该行没有任何数据。

这是我正在使用的代码

Sub Errormsg ()
count2 = Range("B:B").SpecialCells(xlLastCell).Row
For n = 2 To count2
If Range("K" & n).Value = vbNullString Then
Range("K" & n).Interior.ColorIndex = 3
MsgBox "Error ! Null value "
Exit Sub
End If                  
Next n
End Sub 

2 个答案:

答案 0 :(得分:1)

使用另一列(如ID或永远不会空白的内容)并在IF语句中使用它

Sub Errormsg ()
count2 = Range("B:B").SpecialCells(xlLastCell).Row
For n = 2 To count2
    If Range("K" & n).Value = vbNullString AND Range("A" & n).Value <> "" Then
        Range("K" & n).Interior.ColorIndex = 3
        MsgBox "Error ! Null value "
        Exit Sub
    End If                  
Next n
End Sub 

答案 1 :(得分:0)

实际上,您的代码也在最后一行工作。只需从循环中删除最后一行。没关系。

Sub Errormsg ()

     count2 = Range("B:B").SpecialCells(xlLastCell).Row

     For n = 2 To count2 - 1 'Just modify it

         If Range("C" & n).Value = vbNullString Then

             Range("C" & n).Interior.ColorIndex = 3

             MsgBox ("Error ! Null value ")

             Exit Sub

         End If

     Next n

End Sub