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