【发布时间】:2026-01-05 10:10:01
【问题描述】:
这是我的代码:
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
这段代码在.Find 部分给我一个Type Mismatched 错误。
代码位于Command Button。
此外,这有时会起作用,然后突然会抛出Mismatched Error。
请帮助它为什么抛出错误以及如何纠正它。
我不想诉诸循环,因为我有很多用户。
【问题讨论】:
-
将
After:=ActiveCell更改为After:=ws.Range("A2")会发生什么? -
哇,我一定在打瞌睡,一定错过了这个。哈哈谢谢sid。
-
书签 THIS LINK
FOREVER或者直到你不再偏离那个时候。 -
相信我,我确实为它添加了书签。我所有的代码都适应了这一点。有趣的是我没有注意到活动单元。哈哈,我想来杯咖啡比较合适。
标签: vba excel excel-2010