excel vba多用户名和密码登陆(急急急!)

Private Sub CommandButtonlogin_Click()
Dim username As String, userpassword As String
Dim I As Long '设置用户名,密码变量和I
If Trim(TextBox_username.Value) = "" Or Trim(TextBox_password.Value) = "" Then '如果未在TextBox_username文字框和在TextBox_password中输入任何职
MsgBox "请输入用户名和密码!", vbCritical, "警告" '将出现一个警告对话框,上面显示“请输入用户名和密码”
TextBox_password.SetFocus '再次返回输入密码界面,并产生一个错误
Exit Sub
End If
【username = ThisWorkbook.Worksheets("账号").Cells(1, 1).Value
userpassword = ThisWorkbook.Worksheets("账号").Cells(2, 2).Value】
If Trim(TextBox_username.Value) = username And Trim(TextBox_password.Value) = userpassword Then
blogin = True
Application.WindowState = xlMinimized
Unload userform_login
Else
errorcount = errorcount + 1
MsgBox "请输入用户名和密码!", vbCritical, "警告"
TextBox_password.SetFocus
If errorcount = 3 Then
Unload userform_login
End If
End If

End Sub

有一张“账号”工作表,里面A2:A6是用户名,B2:B6是密码
我希望对上面代码中【】内的部分进行修改,从而能够实现多用户名和密码登陆。
上列的代码是在窗体中的登录按钮上的
然后可能是用FIND语句,可是我写出来的终归有问题。
我要的效果是比如“账号”工作表中有五对用户名和密码,我任意输入一对就恩能够登陆,我的窗体和其他部分都已完成,只需要改这一部分。多谢啦!!

第1个回答  2013-05-13
以下是我写的一个从Sheet1的A2:B6这个范围查找用户名和密码进行验证的逻辑,你看看吧.
如果还有不懂,再问吧.

Public Sub aaaaaaaa()
Dim inName As String '输入用户名
Dim inPwd As String '输入密码
Dim rightPwd As String '检索到的密码
inName = "user01" '测试用户名
inPwd = "pwd09" '测试密码

On Error Resume Next
'根据用户名检索正确密码
rightPwd = WorksheetFunction.VLookup(inName, Sheet1.Range("A2:B6"), 2, False)
If rightPwd <> "" And rightPwd = inPwd Then
MsgBox "正确"
Else
MsgBox "错误"
End If

End Sub本回答被提问者采纳
第2个回答  2013-05-13
你要修改的不仅仅是【】内的部分,因为你要实现多用户登录,那么你就要先看看是否输入的用户名是否存在,再来匹配密码,修改如下:
Private Sub CommandButtonlogin_Click()
Dim username As String, userpassword As String
Dim I As Long '设置用户名,密码变量和I
If Trim(TextBox_username.Value) = "" Or Trim(TextBox_password.Value) = "" Then '如果未在TextBox_username文字框和在TextBox_password中输入任何职
MsgBox "请输入用户名和密码!", vbCritical, "警告" '将出现一个警告对话框,上面显示“请输入用户名和密码”
TextBox_password.SetFocus '再次返回输入密码界面,并产生一个错误
Exit Sub
End If

IF worksheetfunction.countif(ThisWorkbook.Worksheets("账号").columns(A),Trim(TextBox_username.Value))>0 then ’判断输入的用户名在"账号"的A列是否存在
if worksheetfunction.vlookup(Trim(TextBox_username.Value),ThisWorkbook.Worksheets("账号").columns(A:B),2,TRUE)=Trim(TextBox_password.Value) THEN ’判断输入的密码是否正确

blogin = True
Application.WindowState = xlMinimized
Unload userform_login
Else
errorcount = errorcount + 1
MsgBox "密码错误!", vbCritical, "警告"
TextBox_password.SetFocus
If errorcount = 3 Then
Unload userform_login
End If
Else
errorcount = errorcount + 1
MsgBox "用户名不存在!", vbCritical, "警告"
TextBox_password.SetFocus
If errorcount = 3 Then
Unload userform_login
End If

End Sub追问

worksheetfunction.vlookup(Trim(TextBox_username.Value),ThisWorkbook.Worksheets("账号").columns(A:B),2,TRUE)=Trim(TextBox_password.Value) THEN ’判断输入的密码是否正确
这一句显示的是编译错误,缺少分隔符或)

追答

worksheetfunction.vlookup(Trim(TextBox_username.Value),ThisWorkbook.Worksheets("账号").columns(A:B),2,TRUE)=Trim(TextBox_password.Value)) THEN ’判断输入的密码是否正确
这一句在THEN前面是少了个 “)” 加上去即可!

追问

问题已经解决了,还是多谢~~!!!

相似回答