Board logo

標題: [發問] 當按下按鈕執行無誤,但是透過轉換,卻出現不同的結果。 [打印本頁]

作者: av8d    時間: 2013-3-19 14:32     標題: UserFrom1內使用For迴圈

本帖最後由 av8d 於 2013-3-19 14:38 編輯

以下寫在UserFrom1內的
  1. Private Sub CommandButton1_Click()
  2.     For i = 2 to 4
  3.     If ComboBox1 = N & i Then
  4.         If TextBox1 = O & i Then
  5.         Username = ComboBox1
  6.         Unload Me
  7.         Else
  8.         MsgBox ("密碼錯誤!")
  9.         End If
  10.     End If
  11.     Next i
  12.    
  13. End Sub
複製代碼
N是工作表("A")的N可是會出錯~這問題重複了@
作者: mark15jill    時間: 2013-3-19 14:44

以下寫在UserFrom1內的N是工作表("A")的N可是會出錯~這問題重複了@
av8d 發表於 2013-3-19 14:32



    問題重複? 是指以前有相同帖? 如果有 可以去找舊文..
紅色部分代表甚麼?? 沒有任何指向 當然錯誤
總不可能 任一符號  就要連結吧...
要的功能是甚麼?
單迴圈 雙重迴圈?


Private Sub CommandButton1_Click()
    For i = 2 to 4
    If ComboBox1 = N & i Then
        If TextBox1 = O & i Then
        Username = ComboBox1
        Unload Me
        Else
        MsgBox ("密碼錯誤!")
        End If
    End If
    Next i
   
End Sub
作者: mark15jill    時間: 2013-3-19 15:14

[attach]14397[/attach]
作者: av8d    時間: 2013-3-20 10:01

回復 3# mark15jill
  1. Private Sub CommandButton1_Click()

  2.     Dim CB, TB As String
  3.     CB = ComboBox1.Value
  4.     TB = TextBox1.Value
  5.    
  6.     Dim i As Integer
  7.     For i = 2 To 4
  8.    
  9.         If CB = "N" & i And TB = "O" & i Then
  10.             Username = ComboBox1
  11.             '關閉視窗
  12.             Unload Me
  13.         Else
  14.             MsgBox ("密碼錯誤!")
  15.         End If
  16.     Next
  17.    
  18. End Sub
複製代碼
他會出現3次密碼錯誤,
工作表內的N2和O2並無錯誤~
輸入也無誤~不知道為什麼?
作者: GBKEE    時間: 2013-3-20 10:13

回復 4# av8d
工作表內的N2和O2並無錯誤~
If CB = Range("N" & i) And TB = Range("O" & i) Then

作者: av8d    時間: 2013-3-20 10:28

回復 5# GBKEE


    [attach]14405[/attach]

工作表N2和O2,輸入正確,但是會顯是密碼錯誤3次。
作者: GBKEE    時間: 2013-3-20 11:12

回復 6# av8d
試試看
  1. Private Sub CommandButton1_Click()
  2.     Dim CB, TB As String, M As String
  3.     CB = ComboBox1.Value
  4.     TB = TextBox1.Value
  5.     Dim i As Integer
  6.     With Sheets("密碼工作表")
  7.         For i = 2 To 4
  8.             If CB = .Range("N" & i) And TB = .Range("O" & i) Then
  9.                 UserName = ComboBox1
  10.                 M = ""
  11.                 '關閉視窗
  12.                 Unload Me
  13.             Else
  14.                 M = "密碼錯誤!"
  15.             End If
  16.         Next
  17.     End With
  18.     If M = "密碼錯誤!" Then MsgBox M
  19. End Sub
複製代碼

作者: av8d    時間: 2013-3-20 11:45

回復 7# GBKEE


    密碼輸入正確~依然顯示錯誤~努力找尋錯誤中~非常感謝!
作者: GBKEE    時間: 2013-3-20 11:48

回復 8# av8d
    6#的附檔無法開啟 請測試一下是否正常或重新上傳
作者: av8d    時間: 2013-3-20 11:51

回復 9# GBKEE


    [attach]14406[/attach]

再次感謝!
作者: Hsieh    時間: 2013-3-20 15:17

回復 10# av8d

資料型態問題
            If CB = CStr(.Range("N" & i)) And TB = CStr(.Range("O" & i)) Then
作者: av8d    時間: 2013-3-20 16:55

本帖最後由 av8d 於 2013-3-20 16:58 編輯

回復 11# Hsieh


    使用了大大給的~可以了~可能輸入錯誤無法讓他顯示了!
作者: av8d    時間: 2013-3-21 09:12     標題: 當按下按鈕執行無誤,但是透過轉換,卻出現不同的結果。

Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer)
    If KeyCode = 13 Then CommandButton1_Click
End Sub

以上是當在TextBox1按下Enter鍵後,執行CommandButton1

Private Sub CommandButton1_Click()
                With TextBox1
                    .SetFocus
                    .SelStart = 0
                    .SelLength = Len(.Text)
                End With
End Sub

我們一般按下按鈕CommandButton1,TextBox1內的字會被全選
但是當在TextBox1按下Enter鍵後,執行CommandButton1,TextBox1內的字卻不會被全選

如附件:
[attach]14414[/attach]
作者: av8d    時間: 2013-3-21 11:26

回復 1# av8d


    發現似乎和"訂為順序"有關~所以必須取消訂為順序~尋找中!
作者: mark15jill    時間: 2013-3-21 11:46

回復  Hsieh


    使用了大大給的~可以了~可能輸入錯誤無法讓他顯示了!
av8d 發表於 2013-3-20 16:55





這個是我之前編寫資料查閱功能的通行證
但只有一對一
可將當中的
    realpsd = 工作表1.Cells(2, "N")
    realpsm = 工作表1.Cells(2, "O")
擴充即可..

用法
開啟程式編輯畫面,把檔案匯入
參考此附件
    [attach]14415[/attach]
作者: mickeymiles    時間: 2013-3-21 11:52

回復 1# av8d
下列再加入  .HideSelection = False,好像就可以了
至於為什麼一開始的不行,可能要請版上前輩指教一下了

                 With TextBox1
                     .SetFocus
                     .SelStart = 0
                     .SelLength = Len(.Text)
                      .HideSelection = False
                 End With
作者: GBKEE    時間: 2013-3-21 12:14

回復 10# av8d
資料型態問題
Dim CB As String, TB As String
  1. Private Sub CommandButton1_Click()
  2.     Dim CB As String, TB As String, ER As String, i As Integer
  3.     CB = ComboBox1.Value
  4.     TB = TextBox1.Value
  5.     With Sheets("蓋棉被純聊天系統")
  6.         For i = 2 To 4
  7.             If CB = .Range("N" & i) And TB = .Range("O" & i) Then
  8.                 ER = ""
  9.                 Username = ComboBox1
  10.                 '關閉視窗
  11.            Unload Me             '還是要執行程式的For的迴圈
  12.            '隱藏UserForm1視窗
  13.            'UserForm1.Hide    '還是要執行程式的For的迴圈
  14.            GoTo MS
  15.             Else
  16.                 ER = "密碼錯誤!"
  17.             End If
  18.         Next
  19.     End With
  20. MS:
  21.     If ER = "密碼錯誤!" Then MsgBox ER   
  22. End Sub
複製代碼

作者: av8d    時間: 2013-3-21 17:05

回復 16# mickeymiles


    謝謝大大~是全選狀態~但是不能打字~不知道為什麼~@
作者: mickeymiles    時間: 2013-3-22 09:48

回復 18# av8d

好像是tab的問題,你從textbox按enter後,會跳到下一個順序的物件去
要怎麼改,還要研究一下,我也在慢慢努力增進自己的知識
也請您多多指教
作者: av8d    時間: 2013-3-22 11:56

回復 17# GBKEE


    G大~請問如果我要改寫成InputBox~該如何改寫呢?
如附件
[attach]14423[/attach]
作者: GBKEE    時間: 2013-3-22 13:18

本帖最後由 GBKEE 於 2013-3-22 13:20 編輯

回復 20# av8d
試試看


[attach]14425[/attach]


Sheet1的CommandButton1_Click()

[attach]14424[/attach]
作者: av8d    時間: 2013-4-2 16:13

回復 21# GBKEE


    [attach]14515[/attach]
當密碼出現錯誤時,會跳窗讓使用者在輸入一次,輸入以後又會跳回原來的UserForm1窗,再次登入測試

是否有辦法讓他不要跳回原來的UserForm1窗~直接再次登入測試?
作者: GBKEE    時間: 2013-4-2 17:28

回復 22# av8d
試試看 是這樣嗎?
  1. Private Sub CommandButton1_Click()
  2.     Dim CB As String, TB As String, ER As String, I As Integer
  3.     CB = ComboBox1
  4.     TB = TextBox1
  5.     For I = 1 To 3
  6.         If 確認密碼(CB, TB) = "密碼正確" Then
  7.             GoTo MS
  8.         Else
  9.             TextBox1 = InputBox("密碼錯誤! " & I & "次", "警告!", "請輸入正確密碼!")
  10.             TB = TextBox1
  11.         End If
  12.     Next
  13.     MsgBox "密碼錯誤! 3次 關閉 Excel"
  14.     Application.Quit
  15.     Exit Sub
  16. MS:
  17.     MsgBox "密碼正確"
  18.     Username = ComboBox1
  19.     Unload Me
  20. End Sub
  21. Private Function 確認密碼(CB As String, TB As String) As String
  22.     Dim I As Integer
  23.     確認密碼 = "密碼錯誤"
  24.     With Sheets("蓋棉被純聊天系統")
  25.         For I = 3 To 5
  26.             If CB = .Range("N" & I) And TB = .Range("O" & I) Then
  27.                 確認密碼 = "密碼正確"
  28.                 Exit For
  29.             End If
  30.         Next
  31.   End With
  32. End Function
複製代碼





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