实例需求:工作表Data中A3单元格开始保存原始数据,第一行为要查找的关键数字,如果该列数据不包含指定数字,那么删除該单元格,并且单元格上移补充空位,结果如工作表Result所示。
需要注意的是:例如A4单元格内容为“14*0”,这并不包括关键数字“1”,只包含数字“14”和“0”。

原始数据中数字是以星号间隔,那么使用split函数拆分,然后针对拆分后的数组元素,再逐个判断进行删除即可,用VBA实现这个并不算什么难题。
如下示例代码展示如何快速查找,和快速删除单元格。

Sub demo()akey = Range("A1:K1")arr = [a3].CurrentRegionFor k = 1 To UBound(arr)For j = 1 To 11If VBA.InStr(1, "*" & arr(k, j) & "*", "*" & akey(1, j) & "*") = 0 Then arr(k, j) = ""Next jNext kWith [a3].CurrentRegion.Value = arr.SpecialCells(4).Delete shift:=xlUpEnd With
End Sub

【代码解析】
第1行代码将关键数字读取到数组中。
第2行代码将原始数据读到数组中。
第4~8循环处理每个数据。
第6行代码用于判断单元格数据是否关键数字,如果不包含则InStr函数返回值为0,则清空数据元素(如果直接清空单元格,那么将影响代码执行效率)。
直接使用InStr函数无法实现全词(完整数字)匹配,因此需要对原始数据略处理。以A4单元格为例,其内容为“14*0”。

  • 将数据扩展为“*14*0*”,即首尾分别增加一个星号
  • 关键数字安装同样规则扩展为“1
  • 使用Instr函数进行查找
    使用这个方法可是完成全词匹配,并且仅需要一次查找即可完成。
    第10行代码将处理后的数据会写到单元格区域中。
    第11行代码使用SpecialCells方法查找单元格,参数值4代表空单元格,然后使用Delete方法删除单元格,shift参数设置为xlUp,则下方单元格上移。

总结一下知识点:

  1. 使用数据数组处理数据,避免多次读写单元格,提升代码效率
  2. 通过数据扩展,InStr一次查找即可实现全词匹配
  3. 使用SpecialCells方法定位单元格,一次性删除,提升代码效率

快速删除包含指定数字的数据相关推荐

  1. python包含某个数字_python编程练习---有序数组中,快速查找是否包含指定数字,并返回其下标...

    生活小问题,1-100猜数游戏:游戏管理员默认写下一个数字,让用户来猜,管理员会根据用户猜的数字,来回答大了.小了提示,如何快速找到该数,假定指定数为70 第一次:猜50(折半),管理员:小了,那范围 ...

  2. panda是删除行_pandas删除包含指定内容的行

    Outline 处理数据时,遇到文件中包含一些不需要的数据(行),需要把这些不符合要求的行给删除掉. 例如:该数据中应该都是2000年的数据,但是包含了一些2001年的数据,所以需要把2001年的数据 ...

  3. 【WPS】表格删除包含指定内容的行

    现在想删除包含"学生"的行 全选数据,选择开始--条件格式--突出显示单元格规则--文本包含 在文本中包含弹框中,填写想要删除行包含的文本,学生,设置颜色,点击确定,就可以看到有学 ...

  4. Windows 技术篇 - 无需确认快速删除包含大量文件的目录,cmd删除文件的rmdir、del、erase和rd四种命令使用方法

    一些非固态硬盘的机器,传统的删除大量的文件会非常耗时. 使用 rmdir /S /Q D:\delete 命令可以无需确认更快速的进行删除操作,其中 D:\delete 表示要删除的文件夹. rmdi ...

  5. python 读取xml获取包含指定标签的数据_用Python元素提取XML的特定行

    我有点困在我正在做的一个项目上,它使用Python--我对它非常陌生.我被告知使用ElementTree并从传入的XML文件中获取指定的数据.听起来很简单,但我不擅长编程.非常低(a!)一个传入文件的 ...

  6. mysql千万级数据怎么删除,MySQL 快速删除大量数据(千万级别)的几种实践方案详解...

    这篇文章主要介绍了MySQL 快速删除大量数据(千万级别)的几种实践方案详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧 笔者 ...

  7. 通过SPSS使用命令语法实现快速删除变量的步骤

    当我们面对一个庞大的数据集的时候,我们想要对该数据集进行一些操作,可能会觉得比较繁琐.为了快速精准的实现数据过滤操作, SPSS是自带了语法功能,通过语法即可快速实现复杂操作.今天小编将通过快速删除变 ...

  8. SPSS中的命令语法如何实现快速删除变量

    当我们面对一个庞大的数据集的时候,我们想要对该数据集进行一些操作,可能会觉得比较繁琐.为了快速精准的实现数据过滤操作, SPSS是自带了语法功能,通过语法即可快速实现复杂操作.今天小编将通过快速删除变 ...

  9. oracle的删除的row如何,Oracle 删除大表中部分数据

    需求: 项目中有一张表大概有7000多万条数据,造成表空间已满,需要清理部分数据,打算清理3000万. 2B 做法: delete from table_name where ID > '400 ...

最新文章

  1. 【Plant Cell】突破!加入一种酵母,可显著提高水稻氮利用率及产量!
  2. 【 C 】在双链表中插入一个新值的简明程序
  3. java面试 内存中堆和栈的区别
  4. 新手教程:不写JS,在MIP页中实现异步加载数据
  5. magento 首页添加最新产品 Display new products on the home page
  6. 适合初学者的sql_适用于初学者SQL多重连接示例
  7. RN对接京东支付sdk(IOS)
  8. 计算机创新课堂教案,1 1.1计算机概述1.2计算机系统课堂教学教案
  9. 搜索Instagram用户名API
  10. 自定义词库 android,[Android]从头到尾教你制作发音且字体显示正常的Ankidroid(Anki)词库 | 古意人...
  11. 应用商店-华为应用市场
  12. 6月13日木叶下向量
  13. yocto FILES_${PN}
  14. Attention 机制是什么?
  15. 【Linux集群教程】09 集群监控 - 监控简介和Cacti搭建
  16. 计算机视觉 目标分割
  17. 在安装Windows时手动创建分区
  18. python 英语翻译_python中英文翻译
  19. html 同字形布局结构,网页的布局
  20. XXL-JOB 任务调度中心 后台任意命令执行漏洞

热门文章

  1. 计算机的论文的引言,计算机类论文中引言的写法分析.pdf
  2. 如何写论文中的引言?
  3. lg显示器工厂模式怎么进入_LG液晶显示器进入工厂模式方法.doc
  4. H5之外部浏览器访问微信客户端网页
  5. An internal routine has requested a dump of selected redo.This usually happens following a specific
  6. gitlab 分支保护
  7. 国科gk7102s-sensor框架驱动笔记
  8. 【C++】迷宫的简单实现
  9. BeautifulSoup4用法详解
  10. Description: Web server failed to start. Port 8082 was already in use. Action: Identify and stop