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

时间:2018-06-21 17:52:02

标签: excel excel-vba msgbox vba

我有一个程序,其中扫描标签,并且该值进入单元格,但是出于安全原因,有必要检查其长度是否始终相同(例如:8,label = 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

2 个答案:

答案 0 :(得分:1)

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

(通过原始回复编辑的代码)

答案 1 :(得分:0)

尝试一下:

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