看板 Visual_Basic 關於我們 聯絡資訊
各位前輩大家好 只要某欄位有特定文字 就刪除一整列 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