举例子A列:
1 ☆■ 蛋挞
2 ■ ☆面包
3 火腿肠
。
。
。
100(行号不固定)■○ 饺子
想得到的效果:
1 蛋挞
2 面包
3 火腿肠
。
。
。
100 饺子
注:特殊符号固定有5种(☆,■,□,○,●)会随机配对出现在商品名前并会带有一个空格
如果出现则一定是在该单元格中占前三个字符
想写段VBA代码删除出现的特殊符号得到正常的商品名
请各位能人帮帮忙!~~~
VBA excel 如果单元格中的商品名包含特殊符号,请帮忙想想写一段判断若有特殊符号则删除的代码
答案:5 悬赏:10 手机版
解决时间 2021-03-19 19:11
- 提问者网友:不爱我么
- 2021-03-19 02:05
最佳答案
- 五星知识达人网友:行路难
- 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
如果真要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
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯