iT邦幫忙

0

問一下高手們

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次

無窮迴圈...最好設定若跑100次就強制跳出迴圈
你的題目不是很好的描述問題,有想過好好把題目描述好嗎?
寫程式也是像作文一樣,人怎樣想,程式怎樣寫,電腦就怎樣跑.

2 個回答

1
來杯拿鐵
iT邦新手 3 級 ‧ 2019-03-14 22:52:02
最佳解答

以下為虛擬碼不能運作,純解說用

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欄 
        結束程式
尋找下一個
跳出訊息

找到資料就退出程式
找過一遍沒找到再回報訊息
參考離開程式

0
賽門
iT邦超人 1 級 ‧ 2019-03-14 17:10:36

For loop裏, 變數i值一直沒變, 所以一直是2, 成了無窮迴圈, 就像當機一樣, 只能從工作管理員停掉Excel.
你要在迴圈內加一行

i=i+1

試試看加在那裏.

我要發表回答

立即登入回答