Board logo

標題: [發問] Msgbox可不可以讀取excel 格內函數 [打印本頁]

作者: coke373    時間: 2016-12-5 01:11     標題: Msgbox可不可以讀取excel 格內函數

Msgbox 可不可以默認輸入內容。假如我輸入PB00891,可不可以默認PB字母,然後會彈出提示錯誤。
A2:A481,掃描槍輸入內容,有兩組字母加數字PA001,PB456,我設定VLOOKUP取PA行頭讀取PB。
當輸入系PB456,B2格會顯示#N/A。我就想系這個時候利用Msgbox 提示輸入內容是PB行頭。
請問前輩可不可以教我。
作者: 葉國洲    時間: 2016-12-5 05:01

  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Column = 1 And Target.Count = 1 Then
  3.   If Target.Row Mod 2 = 0 Then
  4.     If Left(Target.Value, 2) = "PB" Then MsgBox "你要顯示的內容", , "錯誤提示"
  5.   End If
  6. End If
  7. End Sub
複製代碼
回復 1# coke373
作者: coke373    時間: 2016-12-7 03:35

回復 2# 葉國洲


    葉大哥 謝謝你,msgbox可以運行。
你可不可以為我解說一下,那一句是形容A2輸入PB是錯誤,同時可以隔行讀取。
我想知道中文意思。請你教我。
作者: coke373    時間: 2020-5-6 00:48

問題是這樣的,我在寫一個可以讓使用者可以利用讀碼機讀取條碼輸入資料的表單
當該條碼在系統內未建檔時,會利用MSGBOX的訊息視窗作提示
不過系統要求必須可讓使用者連續輸入,而讀碼機的設定限制為輸入完條碼後要送ENTER鍵
所以當MSGBOX出現時,使用者如果沒有注意到訊息視窗,馬上又使用讀碼機讀取條碼時
由於讀碼機會送ENTER鍵的關係,訊息視窗就被視同按下了ENTER鍵而關掉了

請問是否可以在訊息視窗出現時,鎖定ENTER鍵不能按,只能用滑鼠去按確定。

本來是想找看看有沒有無按鈕的訊息視窗,不過MSGBOX並沒有這種類型......
作者: coke373    時間: 2020-5-6 00:48

msgbox有DefaultButton可用,一般會設在第一個上(比如yes/no會落在yes上),你可以把它改為另一個,然後依照回傳值去判斷!
作者: coke373    時間: 2020-5-6 00:49

  1. [code]Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Column = 1 And Target.Count = 1 Then
  3.   If Target.Row Mod 2 = 0 Then
  4.     Dim r
  5. rrr:
  6.     If Left(Target.Value, 2) = "PB" Then r=MsgBox "Input data is error!", 4 or 256, "Error"
  7.     If r <>vbYes Then GoTo rrr
  8.   End If
  9. End If
  10. End Sub
複製代碼
[/code]
作者: coke373    時間: 2020-5-6 00:51

請大大們幫我看一下是不是那裡有問題.
我運行時,Excel一直卡住。
作者: coke373    時間: 2020-5-6 11:56

  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Column = 1 And Target.Count = 1 Then
  3.   If Target.Row Mod 2 = 0 Then
  4.     Dim MyString
  5.     If Left(Target.Value, 2) = "PB" Then MsgBox "Input data is error!", 4 or 256, "Error"
  6.     If Response = vbYes Then
  7.     MyString = "Yes"
  8. Else
  9.    MyString = "No"
  10.   End If
  11. End If
  12. End Sub
複製代碼

作者: coke373    時間: 2020-5-6 11:58

請大大們幫我看一下,這樣子有問題嗎?
msgbox有DefaultButton可用,一般會設在第一個上(比如yes/no會落在yes上),我想把它改為另一個,然後依照回傳值去判斷!
作者: 准提部林    時間: 2020-5-6 12:30

本帖最後由 准提部林 於 2020-5-6 12:51 編輯

回復 9# coke373

應該沒有用~~
按ENTER或ESC後, MSGBOX會消失, 仍然可以讀取條碼???

可利用USERFORM+LABLE(顯示文字), 強制用滑鼠關閉表單~~
[attach]31998[/attach]
作者: coke373    時間: 2020-5-6 13:09

回復 10# 准提部林
准大大 你的方法太好了,這個效果對我太有用了。感謝你




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)