作者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://webptt.com/cn.aspx?n=bbs/Visual_Basic/M.1590483813.A.8C3.html
1F:推 napyang: 可以用Instr来做判断,细节google一下你就懂啦! 05/26 22:52
2F:推 fumizuki: If Cells(r, c).Value Like "*办公室*" Then 05/29 21:32
3F:推 Simonfenix: InStr很够用了 除非你这三个字会拆开 06/07 14:16
4F:→ laechan: 我很少看人用 Cells, Instr 就好了 06/13 16:42
5F:推 profyang: VBA有regular expression吧? 06/15 08:56
6F:→ MOONRAKER: 实在是太幽默了 07/05 00:54
7F:→ MOONRAKER: (1)VBA的regex就是二楼板主写的LIKE operator 07/05 00:55
8F:→ MOONRAKER: (2)「很少用cells用instr就好了」真是太好笑了 07/05 00:55
9F:→ MOONRAKER: 请你写一下你的instr要怎麽写 怎麽比较某个格位的值 07/05 00:56
10F:→ MOONRAKER: 跟「我很少看人买纸杯,都是买豆浆就好」差不多幽默 07/05 00:58
11F:推 waiter337: instr find like 这三个都能用 用法都不同 07/15 00:50
12F:→ waiter337: 需要找范例来看 07/15 00:50
13F:→ waiter337: 依照你回圈要用的话 建议用instr配合>0判断 07/15 00:52
14F:→ waiter337: 但反而是删除的方式要考虑,如果超过20个,不建议这样做 07/15 00:54
15F:→ waiter337: 会删很久 可以关键字 union delete vba 07/15 00:54