·天新网首页·加入收藏·设为首页·网站导航
数码笔记本手机摄像机相机MP3MP4GPS
硬件台式机网络服务器主板CPU硬盘显卡
办公投影打印传真
家电电视影院空调
游戏网游单机动漫
汽车新车购车试驾
下载驱动源码
学院开发设计
考试公务员高考考研
业界互联网通信探索
您现在的位置:天新网 > 软件开发 > 开发语言 > VB开发
VBA在Excel中的应用(二)
http://www.21tx.com 2012年11月02日

1 2 3 4 5 下一页

  目录

  AutoFilter 

  Binding 

  Cell Comments 

  Cell Copy 

  Cell Format 

  Cell Number Format 

  Cell Value 

  Cell 

  AutoFilter

  1. 确认当前工作表是否开启了自动筛选功能

Sub filter() 

         If ActiveSheet.AutoFilterMode Then 

            MsgBox "Turned on" 

         End If 

    End Sub

  当工作表中有单元格使用了自动筛选功能,工作表的AutoFilterMode的值将为True,否则为False。

  2. 使用Range.AutoFilter方法

Sub Test() 

    Worksheets("Sheet1").Range("A1").AutoFilter _ 

        field:=1, _ 

        Criteria1:="Otis" 

        VisibleDropDown:=False 

    End Sub

  以上是一段来源于Excel帮助文档的例子,它从A1单元格开始筛选出值为Otis的单元格。Range.AutoFilter方法可以带参数也可以不带参数。当不带参数时,表示在Range对象所指定的区域内执行“筛选”菜单命令,即仅显示一个自动筛选下拉箭头,这种情况下如果再次执行Range.AutoFilter方法则可以取消自动筛选;当带参数时,可根据给定的参数在Range对象所指定的区域内进行数据筛选,只显示符合筛选条件的数据。参数Field为筛选基准字段的整型偏移量,Criterial1、Operator和Criterial2三个参数一起组成了筛选条件,最后一个参数VisibleDropDown用来指定是否显示自动筛选下拉箭头。

  其中Field参数可能不太好理解,这里给一下说明:

VBA在Excel中的应用(二)

  用上面的代码结合这个截图,如果从A1单元格开始进行数据筛选,如果Field的值为1,则表示取列表中的第一个字段即B列,以此类推,如果Field的值为2则表示C列…不过前提是所有的待筛选列表是连续的,就是说中间不能有空列。当然也可以这样,使用Range(“A1:E17”).AutoFilter,这样即使待筛选列表中有空列也可以,因为已经指定了一个待筛选区域。Field的值表示的就是将筛选条件应用到所表示的列上。下面是一些使用AutoFilter的例子。

Sub SimpleOrFilter() 

    Worksheets("SalesReport").Select 

    Range("A1").AutoFilter 

    Range("A1").AutoFilter Field:=4,Criteria1:="=A", Operator:=xlOr, Criteria2:="=B" 

End Sub

Sub SimpleAndFilter() 

    Worksheets("SalesReport").Select 

    Range("A1").AutoFilter 

    Range("A1").AutoFilter Field:=4, _ 

        Criteria1:=">=A", _ 

        Operator:=xlAnd, Criteria2:="<=EZZ" 

End Sub

Sub Top10Filter() 

    ' Top 12 Revenue Records 

    Worksheets("SalesReport").Select 

    Range("A1").AutoFilter 

    Range("A1").AutoFilter Field:=6, Criteria1:="12",Operator:=xlTop10Items 

End Sub

Sub MultiSelectFilter() 

    Worksheets("SalesReport").Select 

    Range("A1").AutoFilter 

    Range("A1").AutoFilter Field:=4, Criteria1:=Array("A", "C", "E","F", "H"),Operator:=xlFilterValues 

End Sub

Sub DynamicAutoFilter() 

    Worksheets("SalesReport").Select 

    Range("A1").AutoFilter 

    Range("A1").AutoFilter Field:=3,Criteria1:=xlFilterNextYear,Operator:=xlFilterDynamic 

End Sub

Sub FilterByIcon() 

    Worksheets("SalesReport").Select 

    Range("A1").AutoFilter 

    Range("A1").AutoFilter Field:=6, _ 

        Criteria1:=ActiveWorkbook.IconSets(xl5ArrowsGray).Item(5),Operator:=xlFilterIcon 

End Sub

Sub FilterByFillColor() 

    Worksheets("SalesReport").Select 

    Range("A1").AutoFilter 

    Range("A1").AutoFilter Field:=6, Criteria1:=RGB(255, 0, 0), Operator:=xlFilterCellColor 

End Sub

  下面的程序是通过Excel的AutoFilter功能快速删除行的方法,供参考:

上一篇: 电话语音成绩查询系统
下一篇: VB中的冒号

1 2 3 4 5 下一页

关于我们 | 联系我们 | 加入我们 | 广告服务 | 投诉意见 | 网站导航
Copyright © 2000-2011 21tx.com, All Rights Reserved.
晨新科技 版权所有 Created by TXSite.net