永发信息网

VBA excel 如果单元格中的商品名包含特殊符号,请帮忙想想写一段判断若有特殊符号则删除的代码

答案:5  悬赏:10  手机版
解决时间 2021-03-19 19:11
  • 提问者网友:不爱我么
  • 2021-03-19 02:05
举例子A列:
1 ☆■ 蛋挞
2 ■ ☆面包
3 火腿肠



100(行号不固定)■○ 饺子
想得到的效果:
1 蛋挞
2 面包
3 火腿肠



100 饺子

注:特殊符号固定有5种(☆,■,□,○,●)会随机配对出现在商品名前并会带有一个空格
如果出现则一定是在该单元格中占前三个字符
想写段VBA代码删除出现的特殊符号得到正常的商品名
请各位能人帮帮忙!~~~
最佳答案
  • 五星知识达人网友:行路难
  • 2021-03-19 03:01
这东西不需要VBA啊,查找替换就行了
如果真要VBA,也不需要是遍历去判断,直接使用以下代码虽然啰嗦了点,但是执行效率高。
频繁操作,可以做成宏,有半角空格只要是和特殊字符配对出现的就没问题,修改一下就可以完美兼容了。

Sub aa()
Cells.Replace What:="☆ ", Replacement:=""
Cells.Replace What:="■ ", Replacement:=""
Cells.Replace What:="□ ", Replacement:=""
Cells.Replace What:="○ ", Replacement:=""
Cells.Replace What:="● ", Replacement:=""
Cells.Replace What:="☆", Replacement:=""
Cells.Replace What:="■", Replacement:=""
Cells.Replace What:="□", Replacement:=""
Cells.Replace What:="○", Replacement:=""
Cells.Replace What:="●", Replacement:=""
End Sub
全部回答
  • 1楼网友:从此江山别
  • 2021-03-19 04:49
Sub aa() Dim Rng As Range, Arr Arr = Array("☆", "■", "□", "○", "●") With ActiveSheet.UsedRange     For i = 0 To UBound(Arr)         Set Rng = .Find(what:=Arr(i), lookat:=xlPart)         If Not Rng Is Nothing Then             Do                 Rng.Value = Right(Rng, Len(Rng) - 3)                 Set Rng = .FindNext(Rng)             Loop While Not Rng Is Nothing         End If     Next End With End Sub
  • 2楼网友:未来江山和你
  • 2021-03-19 04:42
其实这样的要求用不上VBA,用查找替换功能就可以了. 选中商品名所在的区域 CTRF+F 先复制空五角星放在那里,替换为"" 在复制实心方格,替换为"" 最后的空格同样可以按一下空格键,替换为"" ,不出30妙你的表格就处理好啦.
  • 3楼网友:话散在刀尖上
  • 2021-03-19 03:58
其实这样的要求用不上VBA,用查找替换功能就可以了. 选中商品名所在的区域 CTRF+F 先复制空五角星放在那里,替换为"" 在复制实心方格,替换为"" 最后的空格同样可以按一下空格键,替换为"" ,不出30妙你的表格就处理好啦. 再看看别人怎么说的。
  • 4楼网友:走死在岁月里
  • 2021-03-19 03:50
Sub aa() Dim i%, j%, str$ For i = 1 To [a65536].End(3).Row     str = ""     For j = 1 To Len(Range("A" & i))         If Mid(Range("A" & i), j, 1) <> "☆" And Mid(Range("A" & i), j, 1) <> "■" And Mid(Range("A" & i), j, 1) <> "□" _            And Mid(Range("A" & i), j, 1) <> "○" And Mid(Range("A" & i), j, 1) <> "●" Then            str = str & Mid(Range("A" & i), j, 1)         End If     Next j     Range("B" & i) = Replace(str, " ", "") Next i End Sub
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯