如果最后一个或第一个字符是空格,则为单元格着色

Jes*_*sse 6 excel vba

如果最后一个字符或第一个字符是空格,则下面是为单元格着色的 VBA 代码。

我尝试了一个测试文件并且它起作用了,但是在必须检查的文件上,出现了一条错误消息:

“运行时错误‘13’:类型不匹配”。

如果我点击调试,显示错误的黄色文本行会跳转到

If Left(sheetArr(i, j), 1) = " " Then

我检查了我的工作表,命名是正确的。

我有数千个单元格要检查。我可能不会修改单元格,我可能只会添加宏来检查内容,因为该文件将被其他部门使用。

Sub trailingspace()
'
' Find preceding and trailing spaces in a cell.
' Color these cells pink.
'

    Dim i As Long, j As Long
    Dim sh As Worksheet
    Dim sheetArr As Variant
    Set sh = ThisWorkbook.Sheets("wording")
    sheetArr = sh.UsedRange
    rowC = sh.UsedRange.Rows.Count
    colC = sh.UsedRange.Columns.Count

    For i = 1 To rowC
        For j = 1 To colC
            If Left(sheetArr(i, j), 1) = " " Then
                sh.Cells(i, j).Interior.ColorIndex = 26
            End If

            If Right(sheetArr(i, j), 1) = " " Then
                sh.Cells(i, j).Interior.ColorIndex = 26
            End If
        Next j
    Next i
End Sub
Run Code Online (Sandbox Code Playgroud)

K.D*_*ᴠɪs 6

这是另一种完全避免 VBA 的替代方法。我决定不使用包含前导空格和尾随空格的公式,并将规则分开,以防万一您(或稍后查看此问题的人)希望每个规则使用不同的格式。

  • 首先选择要检查格式的范围。
  • 创建一个新的 CF 规则,选择第二个选项“仅格式化包含的单元格”。
  • 在第一个下拉框中,选择“特定文本”
  • 在第二个框中,选择“开头为”
  • 在公式框中,只需键入一个空格
  • 然后选择您想要的格式(在您的情况下,将是粉红色填充)
  • 重复上述步骤,除了在此迭代中使用“结尾”

最后,您的结果将如下所示:

在此处输入图片说明