在 Excel 中查找文本模式并删除该行

在 Excel 中查找文本模式并删除该行

我的电子表格中有一个文件名列表,我正在尝试搜索位于文件名末尾但在文件类型扩展名之前的 _v1 或 _v2 或 _v3 等。

例如 File_v1.pdf、file_v22.wav

v 后面的数字可以一直到 99,但模式始终是 _v#。(下划线 v 数字句点)。如果文件名包含 _v1 等,那么我想删除该行这是我当前正在使用的代码,但使用 ? 将删除任何字符。我希望我不必写出 _v1。_v2。- 99 次。感谢您的帮助

Sub Delete_Version()
Dim c As range, i As Long
Dim SrchRng

Set SrchRng = ActiveSheet.range("a:a", ActiveSheet.range("a:a").End(xlUp))

For i = 1 To 2

Do

xfind = Choose(i, "_v?.", "_v??.")

Set c = SrchRng.Find(xfind, LookIn:=xlValues)
If Not c Is Nothing Then c.EntireRow.delete
Loop While Not c Is Nothing

Next i

End Sub

答案1

所以你的问题是如何消除误报,例如出现 _vabc 而不是数字?

多年来,Excel VBA 已经改进了其通配符支持。不确定 # 和或选项括号是否适用于 find 指令(_v# 或 _v[0123456789])。这可能取决于 Excel 版本...也许。

最坏的情况是,您可以使用类似运算符并循环遍历每一行。最坏的情况是将正则表达式对象添加到您的项目中,并使用正则表达式仅查找数字。

相关内容