我的 Userform
中有这个循环代码.
Private Sub cmdLogin_Click()
Dim user, pass As String
Dim x As Integer
user = Me.user1.Text
pass = Me.pass1.Text
x = 2
Do While ActiveWorkbook.Worksheets("Sheet1").Cells(x, 1).Value <> ""
If ActiveWorkbook.Worksheets("Sheet1").Cells(x, 1).Value = user _
And ActiveWorkbook.Worksheets("Sheet1").Cells(x, 2).Value = pass Then
MsgBox "YES"
Exit Do
Else
MsgBox "NO"
Exit Do
End If
Loop
End Sub
但似乎代码不会在整个单元格中循环,只会在 x=2 或单元格(2,1)之前停止。这导致无法浏览整个用户名和密码列表,并且我输入的每个用户名和密码都会出错,除了第 2 行的用户名和密码。请帮助,因为我是 VBA 新手
最佳答案
如果 Cells(2,1)
不是 ""
那么你有一个无限循环,因为你永远不会增加 x
.
就在 Loop
之前添加这个:x = x + 1
增加你的循环。
我建议你玩一些these examples了解 VBA 循环是如何工作的。
关于vba - Do Loop 不循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29246996/