作者bchoice (choice)
看板Visual_Basic
標題[VBA ] 模糊搜尋
時間Tue May 26 17:03:31 2020
各位前輩大家好
只要某欄位有特定文字
就刪除一整列
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%符合"辦公室"這三個字才會刪除整列
但我的欄位有時候"辦公室"前後有些文字
我用"*辦公室*"
就沒辦法刪除
有沒有辦法....欄位只要有辦公室三個字
就刪除該列
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 210.69.82.192 (臺灣)
※ 文章網址: https://www.ptt.cc/bbs/Visual_Basic/M.1590483813.A.8C3.html
推 napyang: 可以用Instr來做判斷,細節google一下你就懂啦! 05/26 22:52
推 fumizuki: If Cells(r, c).Value Like "*辦公室*" Then 05/29 21:32
推 Simonfenix: InStr很夠用了 除非你這三個字會拆開 06/07 14:16
→ laechan: 我很少看人用 Cells, Instr 就好了 06/13 16:42
推 profyang: VBA有regular expression吧? 06/15 08:56
→ MOONRAKER: 實在是太幽默了 07/05 00:54
→ MOONRAKER: (1)VBA的regex就是二樓板主寫的LIKE operator 07/05 00:55
→ MOONRAKER: (2)「很少用cells用instr就好了」真是太好笑了 07/05 00:55
→ MOONRAKER: 請你寫一下你的instr要怎麼寫 怎麼比較某個格位的值 07/05 00:56
→ MOONRAKER: 跟「我很少看人買紙杯,都是買豆漿就好」差不多幽默 07/05 00:58
推 waiter337: instr find like 這三個都能用 用法都不同 07/15 00:50
→ waiter337: 需要找範例來看 07/15 00:50
→ waiter337: 依照你迴圈要用的話 建議用instr配合>0判斷 07/15 00:52
→ waiter337: 但反而是刪除的方式要考慮,如果超過20個,不建議這樣做 07/15 00:54
→ waiter337: 會刪很久 可以關鍵字 union delete vba 07/15 00:54