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
uj5u.com熱心網友回復:
F5運行,如果能運行,也能得到正確的結果,就對。uj5u.com熱心網友回復:
不要迷信書、考題、老師、回帖;要迷信CPU、編譯器、除錯器、運行結果。
并請結合“盲人摸太陽”和“駕船出海時一定只帶一個指南針。”加以理解。
任何理論、權威、傳說、真理、標準、解釋、想象、知識……都比不上擺在眼前的事實!
uj5u.com熱心網友回復:
代碼功能歸根結底不是別人幫自己看或講解或注釋出來的;而是被自己靜下心來花足夠長的時間和精力親自動手單步或設斷點或對執行到某步獲得的中間結果顯示或寫到日志檔案中一步一步分析出來的。提醒:再牛×的老師也無法代替學生自己領悟和上廁所!
單步除錯和設斷點除錯是程式員必須掌握的技能之一。
注釋掉所有On Error Resume Next陳述句,在VBA IDE中運行,
出錯后點擊除錯,游標會停在出錯的那條陳述句處,
或者
事先在懷疑可能有邏輯錯誤的陳述句處設定斷點,運行經過斷點時中斷,
此時可以在立即視窗中使用
?變數名
或
?函式名(函式引數)
或
程序名(引數)
輔助除錯。
uj5u.com熱心網友回復:
鬼才知道,你這個是vba,是和你的excel檔案結構相關的,光看代碼怎么知道。比如說你a b c三列,里面是不是這么存的,有沒有條形碼,等等。樓上說的,貼進去運行下是最簡單的知道行不行的辦法。
uj5u.com熱心網友回復:
大概看了一下,程式的行程順序有問題,在FOR中有IF陳述句,應該首先結束IF,才能結束FOR,你的這個首先結束了FOR后才結束IF,典型的行程邏輯錯誤。uj5u.com熱心網友回復:
一看就有很多錯的轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/50030.html
標籤:VBA
