excelvbagoogle-sheetsgoogle-sheets-conditionalformatting

How to use VBA in Google Sheets to highlight cells with special characters and uppercase letters?


I managed to get a VBA-snippet working in Microsoft Excel that highlights all Cells in Range C1 to E10000 which contain anything else than lowercase a–z, numbers and hyphens.

The code looks like this:

Option Explicit
Sub SpecialChars()
    Dim RangeToCheck As Range, c As Range

Set RangeToCheck = Range("C1:E10000")
For Each c In RangeToCheck
    If Len(c.Text) > 0 Then
        If c.Text Like "*[!.a-z0-9\-]*" Then
            c.Interior.Color = vbRed
        Else: c.Interior.Color = vbYellow
        End If
    End If
Next c
End Sub

What is the proper way to transfer this to Google Sheets? I think the problem might be, that Google uses JavaScript while Excel uses something else.

Still I wanted to give it a shot here.


Solution

  • I don't think you need scripts. You could use conditional formatting. It seems the only reason you're using VBA is because you need REGEX, which Microsoft excel doesn't support except through VBA. Google Sheets however has REGEX support inbuilt.

    ... highlights all Cells in Range C1 to E10000 which contain anything else than lowercase a–z, numbers and hyphens....

    Conditional formatting >Custom formula:

    =REGEXMATCH(C1,"^[a-z0-9\-]+$")
    

    This will be used to match

    Highlight yellow
    Apply to range: C1:E10000

    Note: Spaces are not matched. So, If you have spaces, It will not match.