大众计算机学习网欢迎诸位!收藏本站注 册登 陆
常用教程:基础知识网络知识操作系统WPS网页制作数据库算法网页成功之路网络安全最新技术古典mid流行midmid背景下载中心
您现在的位置:首页 > 教程 > 文章页

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

Admin | 2008-6-19 13:00:49 | ReadNums | 20522 | 标签 Excel教程 | 打印本页
     

        利用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


问题未解决:在线咨询

网友评论

(访客)
内容实用原创,讲得很好。
20xx年x月x日
(站长)
有问题请在线咨询。
20xx年x月x日