【问题标题】:Highlighting Blank Cells within Range突出显示范围内的空白单元格
【发布时间】:2020-09-11 19:40:01
【问题描述】:

我正在开发一个宏,它可以复制、粘贴,然后创建各种大小的模板形式。在宏将模板表保存为单独的文件之前,我让它在一个范围内搜索 - 通常通过 D14:G 数据范围的结尾 - 并以自定义颜色突出显示空白单元格。但是,我有一个非常具体的用例,其中范围 (D14:G16) 内没有空白单元格,因此它一直选择此范围以下的所有空白单元格(A17 到工作表末尾)。谁能帮我解决这个问题?以下是突出显示空白单元格的宏的摘录:

 Set rLastCell = Sheets("Diversity Form").Cells.find(What:="*", After:=Sheets("Diversity Form").Cells(1, 1), LookIn:=xlFormulas, LookAt:= _
        xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious, MatchCase:=False)
        'ColumnLetter2 = Split(Cells(1, rLastCell.Column).Address, "$")(1)
        lCol = Sheets("Diversity Form").Cells(Rows.count, 4).End(xlUp).Row
        'Dim ColumnLetter As String
        'color only blank cells
        For h = 4 To 7
        ColumnLetter = Split(Cells(1, h).Address, "$")(1)
        Let item = ColumnLetter & "14:G" & lCol
        Sheets("Diversity Form").Range(item).SpecialCells(xlCellTypeBlanks).Select
        On Error Resume Next
            With Selection.Interior
               .Pattern = xlSolid
               .PatternColorIndex = xlAutomatic
               .ThemeColor = xlThemeColorAccent1
               .TintAndShade = 0.599993896298105
               .PatternTintAndShade = 0
            End With
    
        Next

【问题讨论】:

  • 使用WorksheetFunction.CountBlank进行测试。
  • 你为什么使用名称lCol 来指代一行btw?这令人困惑。
  • @BigBen 成功了!谢谢!另外,是的....我认为这是一个重用的变量。我的代码总是很丑陋。我不是最喜欢分享的人,哈哈

标签: excel vba


【解决方案1】:
  • 无需在此处循环,或与列字母混淆,或Select
  • 先用WorksheetFunction.CountBlank测试是否有空格。
With Sheets("Diversity Form")
    Dim lastRow As Long
    lastRow = .Cells(.Rows.Count, 4).End(xlUp).Row

    Dim checkRange As Range
    Set checkRange = .Range(.Cells(14, 4), .Cells(lastRow, 7)) ' Or .Range("D14:G" & LastRow)
End With

If WorksheetFunction.CountBlank(checkRange) > 0 Then
    With checkRange.SpecialCells(xlCellTypeBlanks).Interior
        .Pattern = xlSolid
        .PatternColorIndex = xlAutomatic
        .ThemeColor = xlThemeColorAccent1
        .TintAndShade = 0.599993896298105
        .PatternTintAndShade = 0
    End With
End If

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-08-09
    • 2021-12-22
    • 2022-01-10
    • 1970-01-01
    • 1970-01-01
    • 2020-05-19
    相关资源
    最近更新 更多