返回列表 上一主題 發帖

如何讓inputbox 連續產生

本帖最後由 准提部林 於 2015-10-6 14:34 編輯

沒檔案,只能猜,請自行去套:
  1. Sub Find_No()
  2. Dim ST, xF As Range
  3. Do
  4.  ST = InputBox("數字")
  5.  If StrPtr(ST) = 0 Then Exit Do '按〔取消〕跳出
  6.  If ST = "000" Then Exit Do '輸入〔特定值〕跳出
  7.  If ST <> "" Then
  8.    Set xF = [書本清冊!A2:A50].Find(ST, Lookat:=xlWhole)
  9.    If xF Is Nothing Then
  10.      MsgBox "找不到編號,請重新輸入! "
  11.    Else
  12.      xF.Resize(1, 2).Copy [擺放清單!A65536].End(xlUp)(2)
  13.      Beep
  14.    End If
  15.  End If
  16. Loop
  17. End Sub
複製代碼

TOP

本帖最後由 准提部林 於 2015-10-6 09:39 編輯

回復 8# kerochen


If StrPtr(ST) = 0 Then Exit Do '按〔取消〕跳出
您的版本無法使用嗎?

TOP

本帖最後由 准提部林 於 2015-10-6 22:31 編輯

If ST = "" Then Exit Do 未輸入,按〔Enter〕或〔確定〕仍然會跳出,

因此要分辨是按〔取消〕?還是〔未輸入〕?
另個方式:
  1. Sub Find_No()
  2. Dim ST, xF As Range
  3. Do
  4.  ST = Application.InputBox("數字")
  5.  If ST & "" = "False" Then Exit Do '按〔取消〕跳出
  6.  If ST = "000" Then Exit Do '輸入〔特定值〕跳出
  7.  If ST <> "" Then
  8.    Set xF = [書本清冊!A2:A50].Find(ST, Lookat:=xlWhole)
  9.    If xF Is Nothing Then
  10.      MsgBox "找不到編號,請重新輸入! "
  11.    Else
  12.      xF.Resize(1, 2).Copy [擺放清單!A65536].End(xlUp)(2)
  13.      Beep
  14.    End If
  15.  End If
  16. Loop
  17. End Sub
複製代碼
未輸入而按確定或Enter,輸入介面仍維持待輸入狀態!! 

TOP

回復 12# kerochen


能否一次選擇 從編號X 到編號N 

意思是類似:輸入〔10-12,18,22-24],連續處理〔10,11,12,18,22,23,24〕,
最好上傳檔案及模擬需求結果(因還檢測是否已選過)!

TOP

回復 14# kerochen

其實那個想法是有問題的:
1.中途找不到符合者,提示訊息後,中斷?或只提醒,按MSGBOX確定,繼續往下執行?
2.中途找到符合者,又已存在(即重覆選取),同上問題?
3.不管找到或找不到,可能是輸入時手誤,如何判斷?
4.當MSGBOX提示多個後,如何記住是哪些有錯誤?
5.當有錯誤,是否又要重來一次?

只是簡單的找對應,不如使用VLOOKUP,在工作表儲存格直接輸入,應更方便,也可檢錯!

TOP

        靜思自在 : 【生命在呼吸間】佛陀說:「生命在呼吸間。」人無法管住自己的生命,更無法擋住死期,讓自己永住人間。既然生命去來這麼無常,我們更應該好好地愛惜它、利用它、充實它,讓這無常、寶貴的生命,散發它真善美的光輝,映照出生命真正的價值。
返回列表 上一主題