VBA经典应用69例:基于文本条件的一般筛选及条件OR筛选

《VBA经典应用69例》(版权10178981),是我推出的第九套教程,教程是专门针对初级、中级学员在学习VBA过程中可能遇到的案例展开,这套教程案例众多,紧贴“实战”,并做“战术总结”,以便大家能很好的应用。教程的目的是要求大家在实际工作中要利用好VBA。本套教程共三册六十九个专题,今日内容:VBA经典应用69例:基于文本条件的一般筛选及条件OR筛选2deb881acfd56f04c1e481ab3cae59f5.jpeg

分享成果,随喜正能量】感恩入怀,一种平和的情愫在血液中缓缓流淌,云卷云舒,去留无意,花开花落,不再黯然神伤。如此境界,仿似置身于云水禅心之境,一念清幽,何惧风雨,细细品味时光的静好,不言山高水远,只念风过留香。。

应用4 VBA中的自动筛选(Autofilter)

大家好,我们这个专题讲解VBA中的自动筛选(Autofilter),一般情况下,我们学习VBA之前都比较熟悉了Excel的利用,为了进一步提高效率,才学习VBA,把VBA宏派上用场。在Excel工作表中,我们可以轻松地根据标准功能,使用"数据"菜单内的"筛选"功能,完成多种多样的筛选以处理各式各样的信息。我们这讲的内容是利用VBA完成自动筛选。

对于应用而言,从小数据集合中过滤掉必要的信息可以使用"筛选"功能。但是,如果你希望根据多个标准和条件过滤大量数据,利用VBA自动过滤器功能可以更轻松。它可以为你节省大量的时间和精力。例如,假设你希望筛选下拉列表中的某些信息(基于多个标准),然后将结果复制/粘贴到其他工作表中。如果手动完成,这似乎是一项非常耗时的任务。在这种情况下,VBA可以帮助你自动化完成这个过程。

2 基于文本条件的一般筛选数据

我们看下面的工作表:

45e7019cc07623eb1dbd6baaef290455.jpeg

让我们来研究一下上图中给出的数据集。假设我们希望根据"性别"列筛选上述数据集。要实现此筛选,并得到“性别=男”的数据,我们将以以下方式编写代码:

Sub mynzA()

'清空数据

Sheets("SHEET1").Select

Cells.ClearContents

With Sheets("Sheet2").Range("A1")

'筛选需要的数据

.AutoFilter Field:=3, Criteria1:="男", VisibleDropDown:=False

'将筛选后的数据复制到指定位置

.SpecialCells(xlCellTypeVisible).Copy Sheets("SHEET1").Range("A1")

'去掉筛选

.AutoFilter

End With

End Sub

代码截图:

ca7039f428b7fbca13dd2df51d264093.jpeg

代码的解读:

① With Sheets("Sheet2").Range("A1")

.AutoFilter Field:=3, Criteria1:="男", VisibleDropDown:=False

以上代码是以相对于“A1”开始,从左侧字段开始的第三个字段设为筛选字段。查找的是此字段的值为“男”的数据

② '将筛选后的数据复制到指定位置

.SpecialCells(xlCellTypeVisible).Copy Sheets("SHEET1").Range("A1")

以上代码将筛选后的数据复制到Sheets("SHEET1").Range("A1")。其中

Range.SpecialCells方法返回一个Range对象, 该对象代表与指定类型和值匹配的所有单元格。

语法:expression.SpecialCells (Type, Value)

其中expression 一个表示 Range 对象的变量。

参数:

a Type 必需 XlCellType 要包含的单元格。

b Value 可选 Variant 如果Type为xlCellTypeConstants或xlCellTypeFormulas, 则此参数用于确定要在结果中包含哪些类型的单元格。将这些值相加可返回多种类型的单元格。默认情况下,将选择所有常量或公式,无论类型如何。

XlCellType 枚举值:

1) xlCellTypeAllFormatConditions -4172 任意格式的单元格。

2) xlCellTypeAllValidation -4174 含有验证条件的单元格。

3) xlCellTypeBlanks 4 空单元格。

4) xlCellTypeComments -4144 含有注释的单元格。

5) xlCellTypeConstants 2 含有常量的单元格。

6) xlCellTypeFormulas -4123 含有公式的单元格。

7) xlCellTypeLastCell 11 所用区域中的最后一个单元格。

8) xlCellTypeSameFormatConditions -4173 格式相同的单元格。

9) xlCellTypeSameValidation -4175 验证条件相同的单元格。

10)xlCellTypeVisible 12 所有可见单元格。

SpecialCells(xlCellTypeVisible).Copy 是指可以复制所有可见的单元格

③ '去掉筛选

.AutoFilter

在原数据中去除筛选格式。

最后我们看代码的运行结果:

171cad47d479fa672fde1cd2fad932bd.jpeg

3 同一列中条件OR的筛选

仍是上表中的数据:

005e522e590652a7cb8c177ff829b471.jpeg

我们要取得年龄为12和8的数据,利用VBA该如何得到呢?

看我给出的代码:

Sub mynzB()

'清空数据

Sheets("SHEET1").Select

Cells.ClearContents

With Sheets("Sheet2").Range("A1")

'筛选需要的数据

.AutoFilter Field:=2, Criteria1:=12, Operator:=xlOr, Criteria2:=8, VisibleDropDown:=False

'将筛选后的数据复制到指定位置

.SpecialCells(xlCellTypeVisible).Copy Sheets("SHEET1").Range("A1")

'去掉筛选

.AutoFilter

End With

End Sub

代码截图:

e245376bf721b79477a3f1d4c5f3f0be.jpeg

代码解读:

① '筛选需要的数据

.AutoFilter Field:=2, Criteria1:=12, Operator:=xlOr, Criteria2:=8, VisibleDropDown:=False

以上代码是取得Criteria1 Or Criteria2的值。

代码的运行效果:

8843e14ae09ef6f19a69f8d45bc94403.jpeg

本讲内容参考程序文件:应用003.xlsm

a189ccc90945af137309a4f337c0c26f.jpeg

我20多年的VBA实践经验,全部浓缩在下面的各个教程中:


4373f2e39a605011bcf581af4987a548.jpeg

3444716e5bce439a1d27c128b8ffc9ac.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/642969.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JAVA工程中引用本地jar的3种常用方式,你用过哪种?

文章目录 前言1. 第1种方式2. 第2种方式3. 第3种方式 前言 实际项目过程中咱们经常会碰到需要本地引用jar包到java工程中的场景,本文就介绍一下遇到此场景时如何在IDEA中导入本地jar包到工程中的3种方式,简单却很常用。 1. 第1种方式 IDEA -> File …

Linux中NFS服务器的搭建和安装

1.介绍: 网络文件系统即将本地系统放在网络上某一个位置的系统,基于UDP/IP使用nfs能够在不同计算机之间通过网络进行文件共享,能使使用者访问网络上其他计算机中的文件就像在访问自己的计算机一样,也就是说放在一个开发板上&#…

Mysql的骚操作说明

Mysql的常规操作 记录些不常用,但是很实用的操作,旨在在MySQL语言能解决的批量操作的问题,不动用其他动态或静态语言的辅助。 1、FROM_UNIXTIME 时间戳转时间格式 select scode,sid,gender,type,FROM_UNIXTIME(report_time) as report_time,FROM_UNIXTIME(add_time) as add…

[windows]win11任务管理器性能中N卡GPU看不到cuda进程Copy选项找不到cuda选项

正常情况下Copy里面有cuda选项,如图 对于不懂技术的人来说,有个误区,就是上图没有显示cuda选项就一定是cuda不能用吗?显然不是,这个选项只是方便在资源管理器展示cuda使用情况。如果在windows11你设置了一些东西则可能…

短视频矩阵系统软件源头开发+无人直播源头开发

首先:我了解您想要开发短视频矩阵系统和无人直播系统的需求。我们是一手源头自研开发,我们采用的是php7.40升级版开发模式 这些系统对于许多企业和个人来说都非常重要,因为它们可以帮助他们更好地管理他们的内容制作和营销活动。 开发这样的…

VUE---插槽

一、插槽的作用&场景 1、在封装组件的时候&#xff0c;将可变的结构设计为插槽&#xff08;<slot></slot>&#xff09; 2、使用上述组件的时候&#xff0c;可以按需为插槽提供自定义的结构&#xff0c;以达到复用组件且高度自定的效果 二、基本语法 1、组件内…

Java设计模式中的单例模式

Java设计模式中的单例模式 单例模式是一种创建型设计模式&#xff0c;其目的是确保一个类只有一个实例&#xff0c;并提供一个全局访问点。 单例模式的两种不同方式 饿汉式单例模式&#xff1a; public class SingletonEager {private static final SingletonEager instanc…

帝国cms使用手机号单篇付费下载的关键代码实现以及代码引用

#小李子9479# #帝国cms# 1。从服务器下载文件php代码 2。前端集成 a)需要一个下载的链接&#xff0c;只要包含button_down这个class即可&#xff0c;即可以为<div class"button_down" data-classid"[!--classid--]" data-infoid"[!--id--]"…

【DeepLearning-1】 注意力机制(Attention Mechanism)

1.1注意力机制的基本原理&#xff1a; 计算注意力权重&#xff1a; 注意力权重是通过计算输入数据中各个部分之间的相关性来得到的。这些权重表示在给定上下文下&#xff0c;数据的某个部分相对于其他部分的重要性。 加权求和&#xff1a; 使用这些注意力权重对输入数据进行加权…

代码随想录算法训练营29期|day28 任务以及具体安排

93.复原IP地址 class Solution {List<String> result new ArrayList<>();public List<String> restoreIpAddresses(String s) {StringBuilder sb new StringBuilder(s);backTracking(sb, 0, 0);return result;}private void backTracking(StringBuilder s,…

使用github作为docker镜像存储仓库

使用github作为docker镜像存储仓库 docker因为其便利性和隔离性已经成为日常开发中非常常见的技术&#xff0c;使用docker可以把我们的编译开发环境打包&#xff0c;在任何机器上只要把docker镜像来取下来运行&#xff0c;不需要重复搭建编译开发环境。 使用过docker的用户都…

理解Nacos是如何实现动态配置的

一、关键步骤 Nacos&#xff08;阿里巴巴开源的分布式配置中心和服务发现系统&#xff09; 实现动态配置的主要思想是通过监听机制和发布/订阅模式来实现配置的实时更新。 以下是 Nacos 实现动态配置的关键步骤&#xff1a; 配置数据存储&#xff1a; Nacos 将配置数据存储在持…

Linux中静态库和动态库的使用

库的概念 介绍&#xff1a; 库是一个二进制文件&#xff0c;包含的代码可被程序调用 标准C库、数学库、线程库… 库有源码&#xff0c;可下载后编译;也可以直接安装二进制包 位置一般放在&#xff1a;/lib /usr/lib库的知识 库是事先编译好的&#xff0c;可以复用的代码 在os上…

Halcon基于组件的模板匹配create_trained_component_model

Halcon基于组件的模板匹配 基于组件的模板匹配可以包含多个ROI&#xff0c;每个区域对应一个组件&#xff0c;并且组件之间还可以发生相 对位置关系变化。因此&#xff0c;该方法的难点就在于确定组件之间的相对位置关系。其步骤如下。 &#xff08;1&#xff09;提取组件的RO…

properties 属性配置文件

properties 属性配置文件 一、properties 文件的书写要求二、properties 属性配置文件的读取1.Properties 类(1) Properties 类的常用方法 2.通过 IO 流的方式读取 properties 文件&#xff08;可移植性差&#xff09;3.如何获取类路径下的文件的绝对路径&#xff08;通用的方式…

输入某年某月某日,判断这一天是这一年的第几天?(Java)

思路&#xff1a; 1&#xff0c;分别定义三个变量来接收 年 月 日 2&#xff0c;累加已经过完的月份的天数 日期 3&#xff0c;二月份的天数要根据是否是闰年&#xff0c;随之改变 1 3 5 7 8 10 12 ---> 31天 4 6 9 11 ---> 30天 2 ---> 闰…

== 和 equals:对象相等性比较的细微差别

和 equals&#xff1a;对象相等性比较的细微差别 既要脚踏实地于现实生活&#xff0c;又要不时跳出现实到理想的高台上张望一眼。在精神世界里建立起一套丰满的体系&#xff0c;引领我们不迷失不懈怠。待我们一觉醒来&#xff0c;跌落在现实中的时候&#xff0c;可以毫无怨言地…

鸿蒙原生应用遍地开花,中小开发者能否分到一杯羹?

2023年对于华为鸿蒙来说&#xff0c;是颇具转折意义的一年&#xff0c;年初还挣扎在生死线上&#xff0c;年末已然渡过了万重山&#xff0c;开始踏上万里路。 时间回到2022年的12月&#xff0c;Strategy Analytics研究报告显示&#xff0c;2022年华为鸿蒙HarmonyOS手机全球市场…

REVIT二次开发 自动门窗墙体标注

步骤1 步骤2 步骤3 using System; using System.Collections.Generic; using System.Linq; using System

用户资源(菜单)控制学习使用

效果图 第一步 需要再定义常量资源 //信访听证 资源前缀public static final String RESPREFIX_MODULE_XINFTZ_"module_xinftz_";//听证专家库public static final ConstantItem RES_MODULE_XINFTZ_TINGZZJK new ConstantItem(RESPREFIX_MODULE_XINFTZ_ "tin…