当单元格范围没有特定长度时显示 MsgBox

Displaying MsgBox when range of cells have not a specific length

我有一个程序,其中扫描标签并将值放入单元格,但出于安全原因,有必要检查其长度是否始终相同(例如:8,标签=12345 -78) 字符串中有一个“-”。我想让程序做的是,当扫描的标签有一个不同于这个的数字时,显示一个消息框,表明该数字无效,然后擦除单元格的内容。我真的很感激这方面的帮助。

这是我目前的代码:

Private Sub Worksheet_Change(ByVal Target As Range)
'macro para prohibir longitud que no sea la seleccionada

Dim rango As Range


For Each Range In Worksheets("HojadeInspection").Range("I9:I20")


If rango.Len(c.Value) <> 8 Then

MsgBox "La longitud del código insertado no es la correcta", vbcrtical


End If



End Sub

试试这个:

Private Sub Worksheet_Change(ByVal Target As Range)
    'macro para prohibir longitud que no sea la seleccionada
    Dim forCell As Variant

    For Each forCell In Worksheets("HojadeInspection").Range("I9:I20")
        If Not forCell.Value Like "[0-9][0-9][0-9][0-9][0-9]-[0-9][0-9]" Then
            MsgBox "La longitud del código insertado no es la correcta", vbcrtical
        End If
    Next
End Sub
Dim i As Integer

'I is the column I used, switch it to meet your needs

i = Worksheets("Sheet1").Range("I:I").Cells. _
     SpecialCells(xlCellTypeConstants).Count

If Not Len(Range("I" & CStr(i))) = 8 Then

MsgBox "Your Message Here", vbCritical
End If

End Sub

(根据原始回复编辑的代码)