员工管理 根据编号查询2

上一节通过Find方法实现查找,本节通过While循环实现查找。


1 主要步骤

步骤1:while循环遍历行,如果数据的第一列不为空就继续循环

步骤2:判断当前行的ID是否所查ID

步骤3:各单元格依次进行赋值


2 完整代码

Sub load2()

  Dim id As String      '要查询的ID
  Dim rowIndex As Integer   '循环变量,表示当前第几行
  Dim flag As Boolean     '标志,表示当前行是否要查找的行
  flag = False

  '获取要查找的ID
  id = Worksheets("B01员工管理").Range("B6").Value

  '步骤1:while循环遍历行,如果数据的第一列不为空就继续循环
  rowIndex = 2
  Do While Not IsEmpty(Worksheets("A01员工").Range("A" & rowIndex).Value)
    '步骤2:判断当前行的ID是否所查ID
    If Worksheets("A01员工").Range("A" & rowIndex).Value = id Then
      '步骤3:各单元格进行赋值
      Worksheets("B01员工管理").Range("C6").Value = Worksheets("A01员工").Range("B" & rowIndex).Value
      Worksheets("B01员工管理").Range("D6").Value = Worksheets("A01员工").Range("C" & rowIndex).Value
      Worksheets("B01员工管理").Range("E6").Value = Worksheets("A01员工").Range("D" & rowIndex).Value
      Worksheets("B01员工管理").Range("F6").Value = Worksheets("A01员工").Range("E" & rowIndex).Value
      Worksheets("B01员工管理").Range("G6").Value = Worksheets("A01员工").Range("F" & rowIndex).Value
      MsgBox "查询完成", Title:="小步教程www.xiaobuteach.com"
      flag = True
      Exit Do
    End If
    rowIndex = rowIndex + 1

  Loop

  If Not flag Then
    MsgBox "没有找到数据,查询失败。ID:" & id
  End If

End Sub

3 代码讲解

IsEmpty判断单元格内容是否为空,为空则返回True,这里通过Not IsEmpty,表示不为空就不断循环,一直到空为止,表示停留到最后一行的下一行。

Flag值说明:默认设为Flase表示没找到,循环中一旦找到,就不需要再继续循环,flag=True表示找到数据,Exit Do表示退出While循环。最后While循环后,Flag为Flase表示没有找到要查询的ID,提示相应消息。


4 测试用例

正常用例:当数据存储表[A01员工]存在要查询的ID时,[B01员工管理]正常显示结果。

异常用例:当数据存储表[A01员工]存在数据,但查询的ID不存在时,提示“没有找到数据,查询失败。ID:*******”