Dzwebs.Net

撰写电脑技术杂文十余年

Excel全名查找或单字查找所有工作表之学生姓名的VBA代码

Admin | 2010-3-25 21:51:20 | 被阅次数 | 10316

温馨提示!

如果未能解决您的问题,请点击搜索;登陆可复制文章,点击登陆

  如何使用VBA代码实现Excel之查找所有工作表中的学生姓名?

  先看下图吧!

  假如,您的工作薄中有几十个班级,每个班级A列,保存的是学生的班级,而B列,保存的是学生的姓名。那么,我们如何使用VBA,一次性迅速查找所有工作表中的学生姓名呢?

  本例子,分为两种情况,即按全名来查找和按单字来查找。因此,在最后一张工作表中,我们使用两个按钮控件,分别实现此二功能。

  点击“查找学生姓名”,弹出对话框,可输入要查找的学生的全名,从而实现查找;点击“单字查找姓名”,可输入学生姓名中的任何一个中文,然后自动查找所有工作表中包含该单字的学生。

  无论使用哪种方法查找,都会弹出如下图的输入框!

  如上图,是按单字查找的输入框(按全名查找的对话框与此类似,不再阐述)。

  如果找到,那么,就会弹出如上图的提示对话框,分别标出属于哪个班级,姓名是什么。

  好了,功能介绍为了,下面我们就看看这两种功能的代码吧。

  ①全名查找的功能代码

  MyName = Trim(InputBox("输入学生姓名", "请输入姓名", "请在此输入学生姓名"))
  For i = 1 To Worksheets.Count - 1
      For j = 4 To Worksheets(i).UsedRange.Rows.Count
          If (MyName = Trim(Worksheets(i).Cells(j, 3).Value)) Then
             MsgBox "班级是:" & Worksheets(i).Cells(j, 2).Value & "姓名是" & Worksheets(i).Cells(j, 3).Value
          End If
      Next j
  Next i

  ②按单字查找的功能代码

  YouName = Trim(InputBox("输入学生姓名中的单字", "请输入姓名中的单字", "请在此输入学生姓名单字"))
  Dim MyName As String
  For i = 1 To Worksheets.Count - 1
      For j = 4 To Worksheets(i).UsedRange.Rows.Count
          MyName = Trim(Worksheets(i).Cells(j, 3).Value)
          For k = 1 To (Len(MyName))
              If (YouName = Mid(MyName, k, 1)) Then
                  MsgBox "班级是:" & Worksheets(i).Cells(j, 2).Value & "姓名是" & Worksheets(i).Cells(j, 3).Value
              End If
          Next k
      Next j
  Next i

  ③部分代码解释

  For i = 1 To Worksheets.Count - 1,要查找的学生姓名,从第一个工作表开始查找,找到倒数第二个工作表。因为最后一个工作表,是放按钮控件的,没有班级信息。

  For j = 4 To Worksheets(i).UsedRange.Rows.Count,查找每个班级的学生姓名的时候,从第4行开始查找,因为从第四行起,才有学生姓名。前三行都是保存其它信息的。

  YouName = Trim(InputBox……,这是一个弹出输入框的代码,以方便我们输入要查找的姓名。

  好了,就介绍到这里吧,有什么不明白的,就问问本站站长。


网站备案号:

网站备案号:滇ICP备11001339号-7

版权属性:

Copyright 2007-2021-forever Inc. all Rights Reserved.

联系方式:

Email:dzwebs@126.com QQ:83539231