Private Sub Worksheet_Change(ByVal Target As Range)
Dim x As Integer
Dim y As Integer
x = Target.Row
If Target.Count > 1 Then Exit Sub
If Target.Column = 2 Then
For y = 1 To x - 1
If Range("by") = Range("bx") Then
Application.Speech.Speak "条码重复,请检查条码"
MsgBox ("条码重复,请检查条码")
Range("B" & x).Clear: Range("B" & x).Select
Next y
Else: Target.Offset(, 1).Select
End If
If Range("B" & x) <> "" And Range("C" & x) <> "" And Range("B" & x) <> Range("C" & x) Then
Application.Speech.Speak "字符长度或内容不一致,请检查条码"
MsgBox ("字符长度或内容不一致,请检查条码")
Range("B" & x).Clear: Range("C" & x).Clear: Range("B" & x).Select
If Target.Column = 3 Then Target.Offset(1, -1).Select
End If
End Sub
Dim x As Integer
Dim y As Integer
x = Target.Row
If Target.Count > 1 Then Exit Sub
If Target.Column = 2 Then
For y = 1 To x - 1
If Range("by") = Range("bx") Then
Application.Speech.Speak "条码重复,请检查条码"
MsgBox ("条码重复,请检查条码")
Range("B" & x).Clear: Range("B" & x).Select
Next y
Else: Target.Offset(, 1).Select
End If
If Range("B" & x) <> "" And Range("C" & x) <> "" And Range("B" & x) <> Range("C" & x) Then
Application.Speech.Speak "字符长度或内容不一致,请检查条码"
MsgBox ("字符长度或内容不一致,请检查条码")
Range("B" & x).Clear: Range("C" & x).Clear: Range("B" & x).Select
If Target.Column = 3 Then Target.Offset(1, -1).Select
End If
End Sub
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
提醒:再牛×的老师也无法代替学生自己领悟和上厕所!
单步调试和设断点调试是程序员必须掌握的技能之一。注释掉所有On Error Resume Next语句,在VBA IDE中运行,
出错后点击调试,光标会停在出错的那条语句处,
或者
事先在怀疑可能有逻辑错误的语句处设置断点,运行经过断点时中断,此时可以在立即窗口中使用
?变量名
或
?函数名(函数参数)
或
过程名(参数)
辅助调试。
楼上说的,贴进去运行下是最简单的知道行不行的办法。