【问题】
关于删除空行,以前是用函数来完成工作的,
今天有人提出问题,传来这个文件,
现有数据,1w多行,其中有部分列有不同合并单元格,跨行也不一样。如果要进行筛选删除空行,有一定的时间与难度。
函数可能不好做哦!
还是用VBA做一个吧,以后相同的工作也可复用,方便,
也可考虑整合到VSTO中。
【代码】
共享如下(含测试代码)
Sub yhd选择区域删除空行()Dim SelRng As RangeSet SelRng = Selectionsi = SelRng.rowei = SelRng.rows.CountDebug.Print si, eiFor i = si To si + eia = Excel.Application.WorksheetFunction.CountA(SelRng.rows(i))Debug.Print "i=" & i & "a=" & aNextWith Worksheets("选择区域删除空行")Set SelRng = .Range("A1:L878")si = SelRng.rowei = SelRng.rows.Count' Debug.Print si, eiEnd With
End Sub
Sub DeleteEmptyRowsInSelection()Dim rng As RangeDim r As Long' 检查选择区域是否为空If Selection Is Nothing ThenMsgBox "没有选择区域", vbExclamation, "提示"Exit SubEnd If' 获取选择区域的所有行号Dim rows As Variantrows = Selection.rows' 从最后一行开始向上遍历,避免索引问题For r = UBound(rows) To LBound(rows) Step -1' 检查整行是否有数据If WorksheetFunction.CountA(Selection.rows(r)) = 0 Then' 如果没有数据,删除该行' Selection.rows(r).DeleteDebug.Print rSelection.rows(r).Interior.ColorIndex = 20End IfNext r
End Sub
代码中先用涂色,测试,如果要删除修改一下就可以啦
【运行】
我们可以先选择区域,再运行代码,
【成功】
如图
如果对你有帮助,转发给大家免费学习
关注,有更多文章学习