当单元格范围没有特定长度时显示 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
(根据原始回复编辑的代码)
我有一个程序,其中扫描标签并将值放入单元格,但出于安全原因,有必要检查其长度是否始终相同(例如: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
(根据原始回复编辑的代码)