Sheets("異動檔").Activate
For i = 2 To Sheets("異動檔").Range("C2").End(xlDown).Row
If T1.Text = Cells(i, "D") And T2.Text = Cells(i, "B").Text Then
data1.Text = Cells(i, "C")
T3.Text = Cells(i, "E")
Else
msg = MsgBox("找不到該筆資料", vbOKOnly)
End If
Next
我輸入日期跟工作地點
然後去查詢 如果有的話 把我想要知道的資料放在我表單 但卻跑出找不到該筆資料
且類似當機那樣
小弟這樣寫 為何出現當機問題 如果高手有方法 希望多指教小弟
小弟的D欄位是日期,B欄位是工作地點
然後如何讓對話盒不會出現就算出現只出現1次
以下為虛擬碼不能運作,純解說用
Sheets("異動檔").Activate
For i = 2 To Sheets("異動檔").Range("C2").End(xlDown).Row
If(T1和T2符合條件)Then
data1.Text = Cells(i, "C")
T3.Text = Cells(i, "E")
Else
msg = MsgBox("找不到該筆資料", vbOKOnly)
End If
Next
從C2到C2最後一列
如果日期和工作地點符合
將data1資料改為同列C欄
將t3資料改為同列E欄
否則
跳出訊息
尋找下一個
每找一欄無論有沒有找到
都要報備一次
從C2到C2最後一列
如果日期和工作地點符合
將data1資料改為同列C欄
將t3資料改為同列E欄
結束程式
尋找下一個
跳出訊息
找到資料就退出程式
找過一遍沒找到再回報訊息
參考離開程式
For loop裏, 變數i值一直沒變, 所以一直是2, 成了無窮迴圈, 就像當機一樣, 只能從工作管理員停掉Excel.
你要在迴圈內加一行
i=i+1
試試看加在那裏.