vba - Do Loop 不循环

标签 vba excel excel-2003

我的 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/

相关文章:

Excel VBA : Delete entire row if cell in column A is blank (Long Dataset)

vba - 在 VBA 中向集合添加键

VBA:下标超出范围错误

c# - 使用 excel 电子表格作为报表查看器 c# 的数据源

PHPExcel如何动态设置单元格值

mysql - 我应该多久索引一次?

vba - Excel:2张纸,用另一张纸上的值填充匹配的单元格

excel - 将 countif/countifs 范围设置为仅范围中的最后一行

Excel宏: How do I copy all rows from 3 worksheets and merge rows that are unique in the first column?

excel-2007 - office2003兼容包安装了吗?