2016-08-18 13 views
0

これは答えるのがかなり簡単だと思っています。私は、textboxcommand buttonをパスワード入力として使用してuserformを持っています。範囲内の値を見つけて選択してください

私はtextbox1に入力された値は、最初の範囲内にあるかどうかをチェックしifステートメントにマクロ以下wrap/editことができ、何を私は知りたいのですか?リスト内の値の場合、でなければを返し、エラーメッセージを返します。これにより、サブジェクトcommand buttonが実行されます。

Dim FindString As String 
Dim Rng As Range 
FindString = Password.TextBox1.Value 
If Trim(FindString) <> "" Then 
    With Sheets("CC Number").Range("A:A") 
     Set Rng = .Find(What:=FindString, _ 
         After:=.Cells(.Cells.Count), _ 
         LookIn:=xlValues, _ 
         LookAt:=xlWhole, _ 
         SearchOrder:=xlByRows, _ 
         SearchDirection:=xlNext, _ 
         MatchCase:=False) 
     If Not Rng Is Nothing Then 
      Application.Goto Rng, True 
     Else 
     End If 
    End With 
End If 
+0

既に入力されていますか?パスワードが常に指定された長さであれば動作するかもしれませんが、ユーザーは送信ボタンを押して実際にパスワードが入力されたことをコードに伝えていました。 1つの可能性は、送信ボタンを無効にして、パスワードとして入力した文字があなたの範囲内にあるかどうかを確認することです(検索を実行するKeyUp)。パスワードがリストにある場合は、[送信]ボタンを有効にします。 – CMArg

答えて

1

これはユーザーのニーズに近い場合があります。ユーザーフォームが初期化されると、送信ボタンは無効になります。ユーザーがパスワードの入力を開始すると、入力した内容が「パスワード」というワークシートに登録されているかどうかを確認します。入力された文字がリストにある場合、送信ボタンが有効になります。 Submitボタンをクリックするとコードが実行されます。 :私はelseの文章を追加しました。それ以外の場合はサブミットボタンを無効にしました(そして私の最初の回答では忘れてしまったExit Sub)。あなたがtextbox1` `の入力ことを知っているだろうかと、入力中にちょうど楽しみのために、あなたが起こっていただきました!を認識するために、ユーザの入力テキストボックスに次のラベル(Label1)を追加することができます...

Private Sub UserForm_Initialize() 
CommandButton1.Enabled = False 
End Sub 

Private Sub TextBox1_Change() 
Dim sPW As String 
Dim lLastRowPasswords As Long 
Dim i As Integer 

lLastRowPasswords = Worksheets("Passwords").Cells(Rows.Count, 1).End(xlUp).Row 
sPW = TextBox1.Text 

For i = 1 To lLastRowPasswords 
    If Worksheets("Passwords").Cells(i, 1).Value = sPW Then 
     CommandButton1.Enabled = True 
     Label1.Caption = "Got it!" 
     Label1.Font.Bold = True 
     Label1.ForeColor = RGB(0, 102, 0) 
     Exit Sub 
    Else 
     CommandButton1.Enabled = False 
     Label1.ForeColor = RGB(179, 0, 0) 
     Label1.Font.Bold = True 
     Label1.Caption = "Unregistered password" 
    End If 
Next i 

End Sub 
+0

完璧に実行していただきありがとうございます –

関連する問題