利用VBA,智能删除你需要删除的行

这篇文章是临时加进去的,不在我这周的文章推送计划范围内。是因为有位群里的朋友求助类似的问题,这类问题也是比较典型的,在学习VBA入门时需要给以点拨的知识点集合范围内,所以特意在这里给大家大范围地讲解一下。本来这种大范围的解答是很少机会的,也希望有用到的朋友能收获一些必要的帮助。

这位朋友的问题是:如何删除A列中"合计"字符的行。而且自己录制了一段宏,但不好用,问这是为什么。

这里谈到录制宏,也希望大家先能弄懂一些必要的知识点才可以做这样的操作,不然是很机械的,出现问题都不知道是哪里的问题。要先去积累自己的知识,到了一定的阶段再去做这些录制。这样,当出现问题时可以自己去找问题的所在。

这里我把这位朋友的问题给引申一下,不仅是删除带"合计"字符的行,而且要智能删除你需要删除的行,那么今日所讲的内容就是,如何利用VBA,智能删除你需要删除的行。

我们先看代码:

Sub KK()

2 Dim FJX

3 Sheets("CBOM").Select

4 UU = InputBox("输入要删除的行中A列含有的唯一字符!")

5 UU = Trim(UU)

6 Set FJX = Sheets("CBOM").Columns("A").Find(UU, AFTER:=[A1], lookat:=xlWhole)

7 If Not FJX Is Nothing Then

8 TT = FJX.Row

9 Rows(TT & ":" & TT).Select

10 Selection.Delete

11 MsgBox ("删除OK"): End

12

13 End If

14 MsgBox ("A列中没有找到要删除的字符,请重新确认")

15

16 End Sub

上面是很简单的一段代码,就可以完成上述的功能,下面是代码的截图。

代码讲解:

1首先要输入你需要删除行中A列的唯一字符,这里是指唯一的字符或字符串,如果你的A列中含有多个这样的字符或字符串,那么会从上到下删除第一个。

2这里用了INPUTBOX的输入接口作为人机对话的输入,当你告诉程序你的需求时,程序会把这个值传给UU。

3在程序中为了防止误操作,要对UU做处理,用TRIM函数处理,不清楚此函数用法的要再去学习我之前的资料。

4然后利用FIND查找函数来完成对A列的查找,查找的值是处理过的UU,在A1单元格开始向下查找,要求是单元格的VALUE和UU完成相等。

5将查找的结果记入FJX。

6如果FJX不为空,即可以查找的到,那么把查找到的单元格的行数赋值给TT,并对此行做DELETE处理,提示"删除OK!"。

7如果为空,即没有查找到,那么,提示"A列中没有找到要删除的字符,请重新确认"。

上面就是程序运行的整个过程,十分的简单,但很好地说明了VBA的运行过程,可以说,此程序可以作为是一般的查找处理的格式化程序。

下面我们看代码的执行过程:

将上述代码拷贝到模块中,建立好关联按钮,点DELETE.

利用VBA,智能删除你需要删除的行

在弹出的对话框中输入ee10。

利用VBA,智能删除你需要删除的行

下面的截图中含有ee10的行被删除了。

利用VBA,智能删除你需要删除的行

整个过程十分的流畅。

今日内容回向:

1 人机对话的接口函数是什么?

2 当输入数值时,如何防止误操作,主要是指多录入空格,且无法发现。

3 如何在FJX中取出行的值?

4 如何整行删除行?

5 引申,如果是多行都是需要删的值,如何进行全部的删除呢?

分享成果,随喜正能量


分享到:


相關文章: