excel - 删除excel中的特殊字符vba

标签 excel vba

我正在使用此函数删除所有假定的特殊字符,但仍然有一些特殊字符,如“Ø”或“é”,并且所有类似的字符仍然存在,如何在下面给定的函数中处理这个问题。

我的想法是创建一个由像 MyStr 这样的特殊字符组成的字符串并删除它们。

请提出建议。

 Function ReplaceSplChars(TempStr As String) As String

Dim counter As Long, Position As Long
Dim MyStr As String, SplStr As String


MyStr = " 1234567890abcdefghijklmnopqrstuvwxyz.@"
Position = 1

For counter = 1 To Len(TempStr)
    SplStr = Mid(LCase(TempStr), Position, 1)

    If Not InStr(MyStr, SplStr) > 0 Then

        If SplStr = "-" Or SplStr = "_" Or SplStr = "'" Or SplStr = "/" Or SplStr = "," Then
            TempStr = Replace(TempStr, SplStr, " ", , 1)
            SplCharCount = SplCharCount + 1
            Position = Position + 1
        Else
            TempStr = Replace(TempStr, SplStr, "", , 1)
            SplCharCount = SplCharCount + 1
        End If
    Else
       Position = Position + 1
    End If

Next counter
ReplaceSplChars = TempStr
 End Function

最佳答案

一个消除了艰苦的工作。

测试代码

Sub EddieBetts()
MsgBox ReplaceSplChars(" 12345Ø67890abcdefghijklmnopqrstéuvwxyz.@")
End Sub

下面的模式排除了任何的内容

  • 字母数字 (\w)
  • 空格(\s)
  • @

代码

 Function ReplaceSplChars(strIn As String) As String
 Dim objRegex As Object
    Set objRegex = CreateObject("vbscript.regexp")
    With objRegex
        .Pattern = "[^\w\s@]+"
        .Global = True
    ReplaceSplChars = Application.Trim(.Replace(strIn, vbNullString))
    End With
 End Function

关于excel - 删除excel中的特殊字符vba,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43178891/

相关文章:

c# - 在 c# (Vsto) 的 Excel 2007 中保存 Excel 模板 2003 时出现问题

wcf - 通过 Excel VBA 从 WCF 服务调用方法

.net - 如何在 Excel 中创建基于模板的用户可自定义报告

vba - 嵌套宏不循环

vba - 列属性可以与多列的数字一起使用吗?

excel - 从 Access 将 Excel 窗口置于前台

excel - 对于每个循环在 else 部分失败

excel - 删除工作表的自动化错误

arrays - VB : Type Mismatch Error, 数组维度 1x1

excel - 如何比使用 FileSystemObject 更快地(有条件地)遍历文件