Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 5126|回复: 12

[已解决]如何删除指定符号后面的数据

[复制链接]
发表于 2016-4-5 21:06 | 显示全部楼层 |阅读模式
例如A列的单元格  ,内容为12356-2222或4598-023 ,如何删除“-”后面的数据,谢谢,如果只删除除“-0*”后的所有数据。
最佳答案
2016-4-6 22:37
  1. Sub Macro1()
  2. For i = 2 To Range("a65536").End(xlUp).Row
  3.     x = Split(Cells(i, 1), "-")
  4.     If Left(x(1), 1) = "0" Then Cells(i, 1) = "'" & x(0) & Right(x(1), 2) Else Cells(i, 1) = "'" & x(0)
  5. Next
  6. End Sub
复制代码
发表于 2016-4-5 21:41 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2016-4-6 13:20 | 显示全部楼层
本帖最后由 colour250 于 2016-4-6 13:22 编辑
爱疯 发表于 2016-4-5 21:41

谢谢,数据如下125364-2,12563-01,25632-9,25896-001,25145-31,125478-11,除了-0开始的不删除,其他的都删除。也就是-2,-21,-11,-9……这些都删除。  
请问用vba怎么写?
回复

使用道具 举报

发表于 2016-4-6 14:27 来自手机 | 显示全部楼层
可能代码放到实际数据中后,你不会修改,或还需修改需求,建议上传一部分的实际数据。
回复

使用道具 举报

发表于 2016-4-6 21:28 | 显示全部楼层
  1. Sub Macro1()
  2. For i = Range("a65536").End(xlUp).Row To 1 Step -1
  3.     If Not Cells(i, 1) Like "*-0*" Then Cells(i, 1).Delete Shift:=xlUp
  4. Next
  5. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2016-4-6 22:19 | 显示全部楼层
爱疯 发表于 2016-4-6 14:27
可能代码放到实际数据中后,你不会修改,或还需修改需求,建议上传一部分的实际数据。

谢谢!

工作簿1.rar

6.89 KB, 下载次数: 4

点评

结果001怎么变成01?  发表于 2016-4-6 22:25
回复

使用道具 举报

 楼主| 发表于 2016-4-6 22:24 | 显示全部楼层
dsmch 发表于 2016-4-6 21:28

这样操作会将单号不含有“-0。。。”都删除的。
例如我有单号:123456-01    ,1234567-001,,123456-2    执行操作后我希望的结果是  12345601 ,,123456701,,123456
谢谢!
回复

使用道具 举报

发表于 2016-4-6 22:25 | 显示全部楼层
colour250 发表于 2016-4-6 22:19
谢谢!

你先试试5楼办法,如果不行,再提出来吧
回复

使用道具 举报

 楼主| 发表于 2016-4-6 22:27 | 显示全部楼层
爱疯 发表于 2016-4-6 22:25
你先试试5楼办法,如果不行,再提出来吧

5楼的操作试过了,会将所有不含有“-0*”的单号都删除。
回复

使用道具 举报

 楼主| 发表于 2016-4-6 22:32 | 显示全部楼层
结果001怎么变成01?这个是挺麻烦的,可以省去不理了,现在只想单号有-01的就保留不变,只要单号不是-01的就直接删除以-开始后面的数据。应该可以用替换的方式+正则表达式实现,可是VBA不会写。谢谢
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 06:24 , Processed in 0.432746 second(s), 16 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表