看板 Office 關於我們 聯絡資訊
控制項 textbox101 跟textbox102 我使用keydown keycode= 13 跟keycode = 9 還有shift=1 跟shift = 0 來做判斷 我從textbox101 按下tab 會跳到textbox102 如果我從textbox102按下shift+tab 時會回到textbox101 但這時後textbox101 會突然出現一個空白字元 如果這時後我又在textbox101 按下tab 程序會判斷錯誤 他會以為textbox101 不是空白的 而且是有東西的 就算我想用 <>0值 來做區分,也分辨不出來 以下為程序碼 Dim 文字框名稱 '---------------------------------- Sub 文字框判斷1() 文字框名稱 = "textbox1" Call 計算數字(文字框名稱) End Sub '----------------------------------- Private Sub TextBox101_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode.value = 13 Or KeyCode.value = 9 Then If Shift = 1 Then ComboBox1.SetFocus Exit Sub ElseIf Shift = 0 Then Call 文字框判斷1 KeyCode.value = 0 TextBox102.SetFocus Exit Sub End If End If End Sub Private Sub TextBox102_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) If KeyCode.value = 13 Or KeyCode.value = 9 Then If Shift = 1 Then TextBox101.SetFocus Exit Sub ElseIf Shift = 0 Then Call 文字框判斷1 KeyCode.value = 0 TextBox103.SetFocus Exit Sub End If End If End Sub '--------------------------------------------------------------- Sub 計算數字(文字框名稱) 傳送數字用 = Right(文字框名稱, 1) Controls(文字框名稱 & "01").Text = LTrim(Controls(文字框名稱 & "01").Text) Controls(文字框名稱 & "01").Text = RTrim(Controls(文字框名稱 & "01").Text) If Controls(文字框名稱 & "01") = "" Then '<--這行為測試用 本來沒這行 Controls(文字框名稱 & "01") = "" ElseIf Controls(文字框名稱 & "01").Text <> "" Then ElseIf Controls(文字框名稱 & "01") = "" Or Controls(文字框名稱 & "01") = 0 Then 計算1000 = 0 End If -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.35.158.244 ※ 文章網址: https://www.ptt.cc/bbs/Office/M.1482835441.A.5BC.html ※ 編輯: waiter337 (114.35.158.244), 12/27/2016 18:45:37 ※ 編輯: waiter337 (114.35.158.244), 12/27/2016 18:46:43 補問一下,為什麼按下shift+tab 回去之後會多出一個空白字元 ※ 編輯: waiter337 (114.35.158.244), 12/27/2016 19:02:36 找到一個問題 會多空白字元是因為我忘了寫上 KeyCode.value = 0 但後面那個空白字元可以再問一下嗎? 雖然不會影響程式了 但是還是蠻想要瞭解 那個奇怪的字元是什麼 該如何判斷呢? ※ 編輯: waiter337 (114.35.158.244), 12/27/2016 19:04:46
soyoso: 多出的部分可以vbtab做為判斷 12/27 23:52
waiter337: 感謝 受教了 12/29 13:20