VBA排除特殊字符和数字但保留字符串空格

 mobiledu2502856247 发布于 2023-02-08 15:48

我在excel单元格中有"abcd 24 ef-gh"文本.

我需要摆脱"24"和" - "但保留所有字母和空格.

我有一个循环文本的函数,并使用like运算符识别字母.出于某种原因,它不排除我在循环之前添加了替换语句的"24"和" - ":

Function StripNonAlpha(TextToReplace As String) As String
Dim i As Integer
Dim a, b, c As String
a = Replace(TextToReplace, "-", " ")
For i = 1 To Len(a)
    b = Mid(a, i, 1)
    If b Like "[A-Z,a-z, ]" Then
        c = c & b
    End If
Next i
StripNonAlpha = c

End Function

我本来希望使用正则表达式而不是这个循环,但是当我发现很多其他语言的例子时,我并没有弄清楚用于VBA的正则表达式.

任何正则表达式的建议都是受欢迎的,但我也想知道为什么我的循环没有按预期运行.

1 个回答
  • 使用一个简单的正则表达式像这样,让您所需的字符(即删除任何不是a-z,A-Z或空格)

    更新:编辑-" "在正则表达式剥离之前替换

    Function StripNonAlpha(TextToReplace As String) As String
    Dim ObjRegex As Object
    Set ObjRegex = CreateObject("vbscript.regexp")
    With ObjRegex
    .Global = True
    .Pattern = "[^a-zA-Z\s]+"
    StripNonAlpha = .Replace(Replace(TextToReplace, "-", Chr(32)), vbNullString)
    End With
    End Function
    

    2023-02-08 15:52 回答
撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有