ExcelVBA 遇关键字删除指定行和复制指定行

专栏 / ExcelVBA 遇关键字删除指定行和复制指定行

ExcelVBA 遇关键字删除指定行和复制指定行

2022年09月15日 04:15 --浏览 · --喜欢 · 孙兴华zz
粉丝: 21.0万 文章: 398

网友需求:

因网友给的需求表格的行数太多,且全英文,这里不再展示。

这个问题我讲过,我讲的是删除列,网友换成行,把完整匹配改成包含,包含用like

https://www.bilibili.com/video/BV1z64y197Ce

视频共两集:

让我想起一件事,我曾经讲过,有N个工作表,从每个工作表的A1单元格取值汇总到一个工作表中,网友学会了,然后网友问我,那我要是从A2单元格取值怎么写代码?

我再讲A2单元格怎么写,并告诉他们换单元格就换个名字就好了,然后还会有人问换成A3和A4单元格怎么写。。。。你回复了,还会有人问,如果我想第一张表是A1单元格,第二张表是B7单元格,第三张表......   那你写个字典就好了,Key是表名,Value是取哪个单元格。

同样的问题还出在对文件的整理上,FSO对象和DIR函数很多网友只能照搬我的代码,改一点需求都不想动脑子。

原因不是谁聪明的问题,是网友没有时间看系统课程,不花时间成本,只想快速把事情给办了。这是不可能的,付出>=回报 。  回报>付出  那不现实。

回到今天这个问题上,我做了一张中文的表

关键词:18,东城,大桃

解决网友方案1:CDE列,遇到关键词就删除整行

1、我们知道是哪些列,就可以将这些列合并起来

可以用VBA代码做连接,也可以直接在表里用工作表函数做连接

2、判断【合并】列是否包含关健词,包含就删除整行

删除会改变行号,所以要倒着删。这些知识在ExcelVBA第二季里都讲过

如果你的关键词多了,比如有100多个,不适合用array手工写,我们课上讲了创建数组三种方法,可以使用13.7.3通过单元格区域直接创建数组的方法。

例如我有一张表单独存放关键词

我们刚才做的合并列想删除,只需要在End sub 之前加入一句话,将F1所在的整列删除,完整代码如下

解决网友方案2:某列,遇到关键词就输出

我与网友核对了名词:输出   的意思

准备一个表,把表头复制过来,也可以用代码复制过来

只需要知道汇总表没有使用的那一行行号就可以了。例如现在就一个表头,我们在第二行复制,如果第二行有文字,那就在第三行复制。

这次我们从Sheet1表的第2行开始向最后一行复制

结果如下:

以网友目前对知识掌握的情况,暂时先用循环的方式处理。等系统学会知识后,可以用更“高级”的方法处理该问题。

ExcelVBA合集: https://www.bilibili.com/video/BV1rt4y1a72y

更多教程: https://www.bilibili.com/read/cv10222110