当某个列中缺少数据时,我需要识别(通过突出显示)。换句话说,我有一列数据指定一个国家。在此列上方有空白,此列下方有空白。数据的最顶行保持不变(数据始终从第4行开始),但底部是可变的。此外,由于这些数据的输出方式,表格底部似乎有3行左右空白但格式化的单元格,这些单元格可以识别为“已使用”。这是我到目前为止的代码:
With ThisWorkbook.ActiveSheet
LastRowCountry = .Range("H" & .Rows.Count).End(xlUp).Row
End With
特定于我的目标的代码片段是:
'Search for blank Geo tags
With ThisWorkbook.ActiveSheet
If IsEmpty(Cells(LastRowCountry, "H")) = True Then
'Highlight Columns
With Range(Cells(4, "H"), Cells(LastRow, "H")).Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent2
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
End If
End With
在此表单中,它无法识别列中的任何空白,也从不突出显示。在此之前,我在代码前面加上:
With ActiveSheet.Cells.SpecialCells(xlLastCell)
LastRow = .Row
LastCol = .Column
End With
总是突出显示该列(我假设是因为它检测到空白但格式化的单元格悬挂在表格的底部。感谢任何接受此操作的人。
史蒂夫
答案 0 :(得分:1)
我在这里试过这个并且有效
Sub CheckForEmptyCells(Byref sh as Worksheet, ByRef col as string)
Dim lastR&
lastR = sh.Range(col & Rows.Count).End(xlUp).Row
Dim r As Range: Set r = Range(col & "5:" & col & lastR)
If Not r.Find("") Is Nothing Then
With r.Interior
.PatternColorIndex = xlAutomatic
.ThemeColor = xlThemeColorAccent2
.TintAndShade = 0.799981688894314
.PatternTintAndShade = 0
End With
End If
End Sub
注意:此例程仅检查给定列在其自己的第一个和最后一个单元格之间是否有空单元格。如果目标是检查整个列(列的最后一个单元格本身可能为空),那么您应该使用:lastR = sh.UsedRange.Rows.Count