[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