员工管理 根据编号查询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:*******”