运行时错误'13'类型在Userform中使用.Find函数时不匹配

时间:2013-11-19 07:30:20

标签: vba excel-vba excel-2010 excel

这是我的代码:

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

此代码在Type Mismatched部分给出了.Find错误 代码位于Command Button 此外,这有时会起作用,然后会突然Mismatched Error 请帮助解释为什么它会抛出错误以及如何纠正错误 我不想诉诸循环,因为我有很多用户。

1 个答案:

答案 0 :(得分:4)

避免使用ActiveCell,除非有绝对必要的理由将其合并。

请参阅THIS LINK

只需更改

After:=ActiveCell 

After:=ws.Range("A2")