Excel 2010数据验证以检查单元格是否包含逗号值

Excel 2010数据验证以检查单元格是否包含逗号值,excel,vba,Excel,Vba,在excel 2010中,如果单元格包含“”,如何进行验证,然后向用户弹出消息?请尝试显示您的工作 假设列A包含数据,那么下面的代码就可以完美地工作了 这是你想要的(经过测试) 使用普通数据验证,您可以尝试以下方法 =(LEN(A1) = LEN(SUBSTITUTE(A1,",",""))) 如果您想避免不必要的循环,请使用下面的代码 Sub findComma() Dim srcRng As Range, findRng As Range Dim firstCell As

在excel 2010中,如果单元格包含“”,如何进行验证,然后向用户弹出消息?

请尝试显示您的工作

假设列A包含数据,那么下面的代码就可以完美地工作了

这是你想要的(经过测试)


使用普通数据验证,您可以尝试以下方法

=(LEN(A1) = LEN(SUBSTITUTE(A1,",","")))

如果您想避免不必要的循环,请使用下面的代码

Sub findComma()

    Dim srcRng As Range, findRng As Range
    Dim firstCell As String

    Dim lrow As Integer

    lrow = Range("A" & Rows.Count).End(xlUp).Row
    Set srcRng = Range("A1:A" & lrow)
    Set findRng = srcRng.Find(What:=",", LookIn:=xlValues, LookAt:=xlPart)


    If Not findRng Is Nothing Then firstCell = findRng.Address

    Do Until findRng Is Nothing


        MsgBox (findRng.Address & " contains Comma ")
        findRng.Interior.Color = vbRed

        Set findRng = srcRng.FindNext(findRng)

        If findRng.Address = firstCell Then Exit Sub

    Loop

End Sub

如果我想对B、C和E列应用验证,如何修改代码?@user1902849更改此
设置srcRng=Range(“A1:E”&lrow)
以对A、B、C、D和E@user1902849如果只需要B、C和E列,则更改此
设置srcRng=Union(范围(“B1:C”和lrow)),范围(“E1:E”和lrow))
可以。现在我想将整个excel工作表设置为白色,下面是我的代码,但从systemSub-DefaultFill()Dim lastCol As Integer Dim lastRow As Integer Dim lastRow As Integer Dim erange As Range lastCol=ActiveSheet.Range(“a1”).End(xlToRight)。Column lastRow=ActiveSheet.Cells(65536,lastCol.End(xlUp)。Row erange=ActiveSheet.Range(“a1”,ActiveSheet.Cells(lastRow,lastCol))。如果要对列B、C和E应用验证,请选择erage.Interior.Color=vbWhite End sub如何修改代码?
Sub findComma()

    Dim srcRng As Range, findRng As Range
    Dim firstCell As String

    Dim lrow As Integer

    lrow = Range("A" & Rows.Count).End(xlUp).Row
    Set srcRng = Range("A1:A" & lrow)
    Set findRng = srcRng.Find(What:=",", LookIn:=xlValues, LookAt:=xlPart)


    If Not findRng Is Nothing Then firstCell = findRng.Address

    Do Until findRng Is Nothing


        MsgBox (findRng.Address & " contains Comma ")
        findRng.Interior.Color = vbRed

        Set findRng = srcRng.FindNext(findRng)

        If findRng.Address = firstCell Then Exit Sub

    Loop

End Sub