分享

VBA查询(筛选)Excel数据代码示例

 udnb 2012-12-25

    利用VBA对Excel数据进行查询或筛选,实际上,指的就是对数据的读取与分析判断,符合条件的给予相应的操作,不符合的数据可不做任何操作!

        本文,举个例子,大体介绍该类用法的操作!

        下面的例子,所要实现的目标是,对学生成绩进行查询并进行判断,将成绩小于70分的人员学号与成绩存放到另外一个表!

        如下图,是一张学生成绩表!该表第一表,名称为Sheet1,序号为1;

        如下图,为第二表,名称为Sheet 2,序号为2;

        对照以上两图,下面我们就着手来操作吧!将表一中成绩小于70的人员学号与分数填充到表二中;

        选择表一,按快捷组合键“Alt+F11”进入到VBA代码编辑窗口!

        之后,按上图操作,在“Sheet 1(Sheet1)”上方点击右键,执行“查看代码”;弹出代码编辑窗口,然后在代码编辑窗口中选择好“Worksheet”和与之对应的右边的选项;最后输入如上的代码即可!

        该代码及事件的功能是:在表一中,只要选择了任何一个单元格,触发事件,就执行代码,将成绩小于70的人员的相关数据填充到表二中!

        如下图,为最终结果图!

        代码简介:

        ①读取单元格数据通用格式

        Worksheets(2).Cells(NoPass, 1).Value,此为数据引用方式,其格式是:Worksheets(“表名或序号“).Cells(“行序号“, “列序号“).Value;

        ②全部代码解释

        Dim NoPass
        NoPass = 3  '变量定义,用于填充至表二的行序号,由于本例从第三行开始填充,所以默认值为3
        For i = 2 To 10000  '利用循环读取表一数据,从第二行读到100000行;
        If (Worksheets(1).Cells(i, 4).Value < 70) Then  '判断读取的单元格数据是否小于70
            Worksheets(2).Cells(NoPass, 1).Value = Worksheets(1).Cells(i, 2).Value
            '将表一第2列对应的行数据填充到表二第1列对应的行;
            Worksheets(2).Cells(NoPass, 2).Value = Worksheets(1).Cells(i, 4).Value
            '将表一第四列对应的行数据填充到表二第2列对应的行;
            NoPass = NoPass + 1  '填充至表二行的步长值!
       End If
       Next

-

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多