[VBA ] 模糊搜寻

楼主: bchoice (choice)   2020-05-26 17:03:31
各位前辈大家好
只要某字段有特定文字
就删除一整列
Public Sub DelRowUnknow()
For r = ActiveSheet.UsedRange.Rows.Count To 1 Step -1
For c = 1 To ActiveSheet.Columns.Count
If Cells(r, c).Value = "办公室" Then
Rows(r).EntireRow.Delete
Exit For
End If
Next
Next
End Sub
他好像要100%符合"办公室"这三个字才会删除整列
但我的字段有时候"办公室"前后有些文字
我用"*办公室*"
就没办法删除
有没有办法....字段只要有办公室三个字
就删除该列
谢谢
作者: napyang (爱唱歌的大男孩)   2020-05-26 22:52:00
可以用Instr来做判断,细节google一下你就懂啦!
作者: fumizuki (蒙面加菲狮)   2020-05-29 21:32:00
If Cells(r, c).Value Like "*办公室*" Then
作者: Simonfenix (Livingfailure)   2020-06-07 14:16:00
InStr很够用了 除非你这三个字会拆开
作者: laechan (挥泪斩马云)   2020-06-13 16:42:00
我很少看人用 Cells, Instr 就好了
作者: profyang (prof)   2020-06-15 08:56:00
VBA有regular expression吧?
作者: MOONRAKER (㊣牛鹤鳗毛人)   2020-07-05 00:54:00
实在是太幽默了(1)VBA的regex就是二楼板主写的LIKE operator(2)“很少用cells用instr就好了”真是太好笑了请你写一下你的instr要怎么写 怎么比较某个格位的值跟“我很少看人买纸杯,都是买豆浆就好”差不多幽默
作者: waiter337 (给开司一罐苏格登)   2020-07-15 00:50:00
instr find like 这三个都能用 用法都不同需要找范例来看依照你循环要用的话 建议用instr配合>0判断但反而是删除的方式要考虑,如果超过20个,不建议这样做会删很久 可以关键字 union delete vba

Links booklink

Contact Us: admin [ a t ] ucptt.com