一、背景及需求:上一期介绍的由多个excel合成的Excel表如下所示,我们需要把有汉字的行删删除掉。
二、解决方案:同样的还是要用VBA来解决,操作前面已经介绍过了,我们直接上代码和注释(!!!在这里需要强调一下:在运行代码前要选中需要删除的部分,比如A-F——1-2000,上下左后都要选,不能全选。由于程序会对选中的每个单元格进行索引,如果直接Ctrl+A全选或者只选择上下或者左右的话,程序会由于一直进行excel单元格的索引而进入无限索引,最终导致电脑卡死!!!):
Sub wrj()
Dim rng As Range '定义了一个range类型的变量 rng
Dim InputRng As Range '同上
Dim DeleteRng As Range '同上
Dim DeleteStr As String '字符串型数据
xTitleId = "KutoolsforExcel" '选择区域弹窗的名字
Set InputRng = Application.Selection
Set InputRng = Application.InputBox("Range :", xTitleId, InputRng.Address, Type:=8)
DeleteStr = Application.InputBox("Delete Text", xTitleId, Type:=2) '删除的行的关键字
For Each rng In InputRng '遍历所有行
If rng.Value = DeleteStr Then '如果有关键字和需要删除的关键字一样
If DeleteRng Is Nothing Then
Set DeleteRng = rng
Else
Set DeleteRng = Application.Union(DeleteRng, rng)
End If
End If
Next
DeleteRng.EntireRow.Delete '删除行
End Sub
三、摁下F5运行,即可得到结果。