使用VBA删除Excel中编号末尾不为00的行
删除工作表中编号列末尾不为“00”的行
下面提供几种实用的处理方法,适配不同场景需求:
方法1:手动筛选(适合小数据量)
- 假设编号列是B列,在旁边空白列(比如C列)的C2单元格输入公式:
=RIGHT(B2,2)="00",下拉填充到所有数据行 - 选中C列,点击「数据」选项卡的「筛选」按钮,点击C列表头的筛选箭头,只勾选
TRUE - 此时显示的都是符合要求的行,你可以直接保留这些行,或者删除隐藏的不符合条件的行
方法2:Power Query自动化(适合大数据量或重复处理)
- 选中整个数据区域,点击「数据」选项卡 → 「从表格/区域」(Excel 2016及以上版本可用)
- 在弹出的Power Query编辑器里,点击「添加列」→ 「自定义列」,输入公式:
=Text.End([Number],2)="00" - 点击自定义列的筛选箭头,只保留
TRUE的记录 - 删除刚才添加的自定义列,点击「关闭并上载」,处理后的数据会自动导入新工作表
方法3:VBA批量处理(适合需要反复执行的场景)
按下Alt+F11打开VBA编辑器,右键点击左侧的工作表名称,选择「插入」→「模块」,粘贴以下代码:
Sub DeleteNonZeroEndRows() Dim ws As Worksheet Dim lastRow As Long Dim i As Long Set ws = ActiveSheet lastRow = ws.Cells(ws.Rows.Count, "B").End(xlUp).Row ' 从最后一行往上删,避免删行后索引错乱 For i = lastRow To 2 Step -1 If Right(ws.Cells(i, "B").Value, 2) <> "00" Then ws.Rows(i).Delete End If Next i End Sub
回到Excel界面,按下F5运行代码,就能自动删除所有编号末尾不是“00”的行
示例
原始数据
user_id Number john 098746700 Matt 087788888 mary 098888700
处理后结果
user_id Number john 098746700 mary 098888700
内容的提问来源于stack exchange,提问作者Gary Mannion
相关产品推荐
相关产品推荐

