excel学习库

excel表格_excel函数公式大全_execl从入门到精通

Excel VBA系列之自动筛选数据

1. 如图所示,以班级名称为筛选条件,然后将自动筛选的结果复制到其他区域。2. 打开Visual Basic,添加一个模块和过程,称之为“自动筛选”。3. 添加自动筛选的代码,筛选的区域就是成绩数据区域,筛选列(field:=2)为第二列“班级”,筛选条件(Criteria1:=Sheet1.Range("H2"))是H2单元格的字段。Sub 自动筛选()Sheet1.Range("A1:F30").AutoFilterfield:=2, Criteria1:=Sheet1.Range("H2")End Sub 4. 执行以上代码后,可以看到成绩区域已自动筛选出结果。5. 添加将筛选出来的结果复制到J列至O列的代码。6. 添加复制完结果后取消筛选的代码。Sub 自动筛选()Sheet1.Range("A1:F30").AutoFilterfield:=2, Criteria1:=Sheet1.Range("H2")Sheet1.Range("A1:F30").Copy Sheet1.Range("J1")Sheet1.Range("A1:F30").AutoFilterEnd Sub 7. 执行以上代码后,即可看到筛选的结果已复制过来了。8. 但是当修改筛选条件为E班(只有一条数据)时,发现原来A班的筛选结果未清空,E班的结果只是覆盖了之前A班结果的第一行。9. 解决上面的问题,需要在筛选之前添加清空结果区域的代码,再次执行后即可按预想效果筛选并复制结果。Sub 自动筛选()Sheet1.Range("J1:O2000").ClearContentsSheet1.Range("A1:F30").AutoFilterfield:=2, Criteria1:=Sheet1.Range("H2")Sheet1.Range("A1:F30").Copy Sheet1.Range("J1")Sheet1.Range("A1:F30").AutoFilterEnd Sub 以上案例仅用于演示,实际应用中请根据自己需求进行调整。 喜欢的朋友请多多关注

发表评论:

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

«    2024年12月    »
1
2345678
9101112131415
16171819202122
23242526272829
3031
控制面板
您好,欢迎到访网站!
  查看权限
网站分类
搜索
最新留言
    文章归档
      友情链接