Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 运行时错误';13';在Userform中使用.Find函数时类型不匹配_Vba_Excel_Excel 2010 - Fatal编程技术网

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分钟前
我刚刚做了:)