无法在删除该行后重新运行macros

我试图运行一个代码来validation列“K”。 如果列“K”中的任何单元格为Null,则会popup错误消息,单元格应变成红色。 我试了下面的代码,它正在工作。 以下是我的问题。 我运行macros。 macros检测到空单元格,并popup错误消息。 我删除了与空单元格的行。 再次运行macros。 错误信息再次popup。 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 

使用另一列(如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 

其实,你的代码也是最后一行。 只要从循环中删除最后一行。 它会好的。

 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