Vba 运行时错误';13';在Userform中使用.Find函数时类型不匹配
这是我的密码:Vba 运行时错误';13';在Userform中使用.Find函数时类型不匹配,vba,excel,excel-2010,Vba,Excel,Excel 2010,这是我的密码: Option Explicit Private Sub CBu_Login_Click() Dim ws As Worksheet, rng As Range, lrow As Long, find_value As String Dim cel As Range Set ws = ThisWorkbook.Sheets("UserName") lrow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row Set rng = ws
Option Explicit
Private Sub CBu_Login_Click()
Dim ws As Worksheet, rng As Range, lrow As Long, find_value As String
Dim cel As Range
Set ws = ThisWorkbook.Sheets("UserName")
lrow = ws.Range("A" & ws.Rows.Count).End(xlUp).Row
Set rng = ws.Range("A2:A" & lrow)
find_value = Me.TB_Username.Value
Set cel = rng.Find(What:=find_value, After:=ActiveCell, LookIn:=xlFormulas, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
If Not cel Is Nothing Then
If Me.TB_Password.Value = cel.Offset(0, 1).Value Then
UF_Encoding.L_User.Caption = "Welcome " & cel.Offset(0, 2).Value & "!" & " You are logged in."
UF_Encoding.TB_Operator.Text = cel.Offset(0, 2).Value
UF_Encoding.Show
Me.Hide
Else
MsgBox "Invalid Username/Password"
End If
Else
MsgBox "Invalid Username/Password"
End If
End Sub
此代码在部分上给了我一个类型不匹配的错误。查找部分。
代码位于命令按钮中
此外,这有时会起作用,然后会突然抛出不匹配错误
请说明它抛出错误的原因以及如何更正。
我不想求助于循环,因为我有很多用户。避免使用ActiveCell
,除非有绝对必要的理由合并它
请看
简单地改变
After:=ActiveCell
到
避免使用ActiveCell
,除非有绝对必要的理由合并它
请看
简单地改变
After:=ActiveCell
到
当您将After:=ActiveCell
更改为After:=ws.Range(“A2”)
时会发生什么?哇,我一定是打瞌睡了,一定是错过了这个。哈哈,谢谢你,希德。书签永远
或者直到你不再偏离它。相信我,我已经把它书签了。我所有的代码都适应了这一点。有趣的是,我没有注意到activecell。哈哈,我想一杯咖啡是合适的。如果你把After:=ActiveCell
改为After:=ws.Range(“A2”)
,会发生什么?哇,我一定是打瞌睡了,一定是错过了这个。哈哈,谢谢你,希德。书签永远
或者直到你不再偏离它。相信我,我已经把它书签了。我所有的代码都适应了这一点。有趣的是,我没有注意到activecell。哈哈,我想喝杯咖啡是合适的。与.Find的错误通常是因为LookIn设置错误。
我不想这么说,但你的假设是错误的:)你好,Sid!:)嗯,我现在正在仔细阅读。我检查了MSDN数据库,它似乎比我想象的要多(不知道它甚至需要一个变体,哈哈)。然而,每当我个人在查找时遇到这种情况,我通常会删除LookIn
,然后它会再次工作。尽管如此,请随时更正我上面的代码。;)将Activecell
设置为ws.Range(“A2”)
解决了这个问题Me.TB\u Username.Value
是一个字符串<代码>xlFormulas
运行良好。感谢您的接受,尽管Sid在这里应该得到更多的赞扬,因为仅凭他的评论就解决了所有问题:D+1尽管如此,请随意更正我上面的代码。–BK201 2分钟前
我刚刚做了:)与.Find的错误通常是因为LookIn设置错误。
我不想这么说,但你的假设是不正确的:)你好,Sid!:)嗯,我现在正在仔细阅读。我检查了MSDN数据库,它似乎比我想象的要多(不知道它甚至需要一个变体,哈哈)。然而,每当我个人在查找时遇到这种情况,我通常会删除LookIn
,然后它会再次工作。尽管如此,请随时更正我上面的代码。;)将Activecell
设置为ws.Range(“A2”)
解决了这个问题Me.TB\u Username.Value
是一个字符串<代码>xlFormulas
运行良好。感谢您的接受,尽管Sid在这里应该得到更多的赞扬,因为仅凭他的评论就解决了所有问题:D+1尽管如此,请随意更正我上面的代码。–BK201 2分钟前
我刚刚做了:)