【VBA】Excel删除包含指定内容的行 您所在的位置:网站首页 excel如何查找指定内容并删除行列 【VBA】Excel删除包含指定内容的行

【VBA】Excel删除包含指定内容的行

2024-07-02 00:57| 来源: 网络整理| 查看: 265

提示:思路仅供参考,具体情况请具体对待

文章目录 前言一、思路二、写代码总结

前言

特定场景:

工作中经常遇到一些软件导出的表格,其中的各级小计分布在不同的列,“小计”二字之间有的还加入了数量不等的空格,实际统计时这些小计行在其中非常碍事,于是得想个办法快速删掉它。

提示:删除内容有风险,请谨慎测试

一、思路

如果用循环逐单元格取值判断是否包含某字符,速度会非常慢,只有在没有其他办法可想的时候才用这种办法。 快速定位的方法很多,但最快的应该还是Excel自带的方法: Range.SpecialCells()可以非常快速的定位目标单元格 Range.SpecialCells(xlCellTypeFormulas, 16)可以快速定位出错单元格 其中xlCellTypeFormulas是公式,16是错误 如果我给这些需要定位的单元格,赋予一个错误的公式,比如“=1/0”,则会返回“#DIV/0!”的错误提示。 然后来定位这些错误单元格,一次性删除掉。 但是如果表格里真的有这些错误提示,而又需要保留,则会存在误删。 考虑了一下,用常量来表示,就更合适了。 Range.SpecialCells(xlCellTypeConstants, 16) 其中xlCellTypeConstants是常量,16是错误 当单元格出现错误文本就可以快速定位了。 而我们多半不会在单元格里手动去输入一个#DIV/0!或者#NAME?吧?

二、写代码 Sub 删除_包含指定内容的行() On Error Resume Next h = InputBox("请输入包含的内容(支持通配符)", "开水瓶里游泳提醒您", "小*计") If h = "" Then Exit Sub Cells.Replace What:=h, Replacement:="#NAME?", Lookat:=xlWhole Cells.SpecialCells(xlCellTypeConstants, 16).EntireRow.Delete End Sub 总结

先将符合条件的文本替换为错误提示文本,然后利用错误提示快速定位删除。 解决问题的方法有很多,而循环是效率最低的,利用软件内置的一些定位功能,可以让代码提速不少。



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有