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

举例子A列:
1 ☆■ 蛋挞
2 ■ ☆面包
3 火腿肠



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



100 饺子

注:特殊符号固定有5种(☆,■,□,○,●)会随机配对出现在商品名前并会带有一个空格
如果出现则一定是在该单元格中占前三个字符
想写段VBA代码删除出现的特殊符号得到正常的商品名
请各位能人帮帮忙!~~~

这东西不需要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个回答  2013-10-23
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

第2个回答  2013-10-23
其实这样的要求用不上VBA,用查找替换功能就可以了.
选中商品名所在的区域
CTRF+F
先复制空五角星放在那里,替换为""
在复制实心方格,替换为""
最后的空格同样可以按一下空格键,替换为""
,不出30妙你的表格就处理好啦.
第3个回答  2013-10-24
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

相似回答