作者:iamlaosong

用VBA程序处理Excel数据文件。用户的数据文件有时处于自己主动筛选模式,往往导致数据处理不对。为此,须要检測工作表是否处于该模式,假设是,则去掉自己主动筛选。语句例如以下:

If ActiveSheet.AutoFilterMode = True Then Selection.AutoFilter

这个语句一般仅仅用于去掉自己主动筛选,尽管Selection.AutoFilter也能够加上自己主动筛选,但筛选位置却可能在当前单元格处,所以要注意。加自己主动筛选前,现将单元格定位到字段标题处。然后用例如以下语句:

If ActiveSheet.AutoFilterMode = False Then Selection.AutoFilter


假设检測其他非活跃的工作表,能够用以下语句:

If Worksheets("sheet1").AutoFilterMode = True Then

Worksheets("sheet1").Range("A1").AutoFilter


附:
Range.AutoFilter Method
Excel Developer Reference
 

Filters a list using the AutoFilter.

Syntax

expression.AutoFilter(Field, Criteria1, Operator, Criteria2, VisibleDropDown)

expression   An expression that returns a Range object.

Parameters

Name Required/Optional Data Type Description
Field Optional Variant The integer offset of the field on which you want to base the filter (from the left of the list; the leftmost field is field one).
Criteria1 Optional Variant The criteria (a string; for example, "101"). Use "=" to find blank fields, or use "<>" to find nonblank fields. If this argument is omitted, the criteria is All. If Operator is xlTop10Items, Criteria1 specifies
the number of items (for example, "10").
Operator Optional XlAutoFilterOperator One of the constants of XlAutoFilterOperator specifying the type of filter.
Criteria2 Optional Variant The second criteria (a string). Used with Criteria1 and Operator to
construct compound criteria.
VisibleDropDown Optional Variant True to display the AutoFilter drop-down arrow for the filtered field. False to
hide the AutoFilter drop-down arrow for the filtered field. True by default.

Return Value

Variant

Remarks

If you omit all the arguments, this method simply toggles the display of the AutoFilter drop-down arrows in the specified range.

Example

This example filters a list starting in cell A1 on Sheet1 to display only the entries in which field one is equal to the string "Otis". The drop-down arrow for field one will be hidden.

Visual Basic for Applications
Worksheets("Sheet1").Range("A1").AutoFilter _
field:=1, _
Criteria1:="Otis", _
VisibleDropDown:=False


【VBA研究】工作表自己主动筛选模式检測的更多相关文章

  1. VBA验证工作表是否存在

    使用VBA验证工作表是否存在 ============================================================= 代码区域 ================== ...

  2. 使用VBA从工作表中读图片,以及给工作表中写文件

    因为工作的原因,需要用到VBA,碰到读图片和写图片: Sub Macro01() '从工作表中保存图片 Application.ScreenUpdating = False Dim pth, shp, ...

  3. Excel VBA ——批量工作表重命名

    虽然平常在用excel 2010重命名工作表的时候,一般可能会用"双击工作表"的方法来重名,但是遇到大批量重名的时候就很麻烦. 我的方法,先建一张新表,然后在第一列写好要命名的表名 ...

  4. [VBA]获得工作表名称

    sub 获得工作表名称() Dim i As Integer For i = 1 To Worksheets.Count Cells(i, 2) = Worksheets(i).Name Next E ...

  5. Excel VBA 判断工作表是否为空或被使用过(比如设置过框线)

    IsEmpty 函数 返回 Boolean 值,指出变量是否已经初始化. [语法] IsEmpty(expression) 必要的 expression 参数是一个 Variant,包含一个数值或字符 ...

  6. excel-合并多个Excel文件--VBA合并当前目录下所有Excel工作簿中的所有工作表

    在网上找EXCEL多文件合并的方法,思路: 一.Linux 或者window+cmder,直接用命令行cat合并EXCEL文件,但是,需要安装辅助东西才能直接处理(也许也不可以,但是,可以用文件格式转 ...

  7. 在VBA中调用工作表函数

    虽然VBA几乎可以完成所有工作表函数的功能,但是有时候在无法打开思路的时候,适当调用一些工作表函数也未尝不可,在VBA中调用工作表函数需要用到 WorksheetFunction对象,例如: Work ...

  8. Excel 2010 如何将筛选后的数据复制粘贴到另一个工作表筛选后的表格里

    如果你是指自动筛选后,把筛选数据复制/粘贴到另外一个工作表中,不妨试试试 第一步选中筛选后的数据区域:第二步执行菜单命令“编辑/定位/定位条件/可见单元格”,确定:第三步单击复制按钮或者Ctrl+C或 ...

  9. 【VBA】获取当前工作表的用户名

    如何使用VBA获取当前工作表的用户名呢?请看如下代码: Sub 获取当前工作表的用户名() MsgBox "当前工作表的用户名为:" & Application.UserN ...

随机推荐

  1. node.js入门之三

    Node.js REPL(交互式解释器) Node.js REPL(Read Eval Print Loop:交互式解释器) 表示一个电脑的环境,类似 Window 系统的终端或 Unix/Linux ...

  2. CSS3 动画-- 鼠标移上去,div 会旋转、放大、移动

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  3. day21-3 类的组合

    目录 类的组合 组合的应用 类的组合 组合就是一个类的对象具备某一个属性,该属性的值是指向另外一个类的对象 组合的好处:解决类与类之间代码冗余的问题 组合的应用 需求:假如我们需要给学生增添课程属性, ...

  4. CAD参数绘制实心圆弧填充(网页版)

    js中实现代码说明: function DrawPathToHatch1() { //把路径的开始位置移动指定的点 //参数一为点的X坐标 ,参数二为点的Y坐标,参数三为该点处开始宽度,对Polyli ...

  5. RabbitMQ 基础概念介绍

    AMQP 消息模型 RabbitMQ 是基于 AMQP(高级消息队列协议)的一个开源实现,其内部实际也是 AMQP 的基本概念.

  6. Redux的中间件Middleware不难,我信了^_^

    Redux的action和reducer已经足够复杂了,现在还需要理解Redux的中间件.为什么Redux的存在有何意义?为什么Redux的中间件有这么多层的函数返回?Redux的中间件究竟是如何工作 ...

  7. BZOJ 1711 吃饭dining/Luogu P1402 酒店之王 拆点+最大流流匹配

    题意: (吃饭dining)有F种食物和D种饮料,每种食物或饮料只能供一头牛享用,且每头牛只享用一种食物和一种饮料.现在有n头牛,每头牛都有自己喜欢的食物种类列表和饮料种类列表,问最多能使几头牛同时享 ...

  8. CentO7-使用plantuml绘制UML类图

    准备工作 到PlantUml官网(http://plantuml.com/download)下载plantuml.jar.官网上还有一个在线的demof服务.plantuml的官网真的很挫! 到官网下 ...

  9. HDU1401 Solitaire

    题目描述:8×8的棋盘上有4个棋子,棋子的运动方法如下:1.如果其上/下/左/右一格没有棋子,则可以去;2.如果其上/下/左/右一格有棋子,而且沿原方向再跳一步没有,则可以去. 给出初始结束位置,问8 ...

  10. 小甲鱼python疑难点

    1.python生成器 2.while 1: num = input('请输入一个整数(输入Q结束程序):') if num != 'Q': num = int(num) print('十进制 -&g ...