Excel 从字母数字字符串中删除整数

Excel 从字母数字字符串中删除整数,excel,vba,Excel,Vba,我很难找到一种方法,在不删除字符串末尾的数字的情况下,从单元格中删除浮点整数。我能得到一些关于如何处理这个问题的帮助吗 例如,在附加的图像中,而不是: john123456hamilton,我想要: john123汉密尔顿 这可以使用正则表达式来完成。您将匹配要删除的数据,然后用空字符串替换此数据 因为您没有提供任何代码,所以我所能做的就是为您提供一个可以在您自己的项目中实现的函数。此函数可以在VBA中使用,也可以用作工作表函数,例如=replaceFloatingIntegraters(A1)

我很难找到一种方法,在不删除字符串末尾的数字的情况下,从单元格中删除浮点整数。我能得到一些关于如何处理这个问题的帮助吗

例如,在附加的图像中,而不是:
john123456hamilton
,我想要:
john123汉密尔顿


这可以使用正则表达式来完成。您将匹配要删除的数据,然后用空字符串替换此数据

因为您没有提供任何代码,所以我所能做的就是为您提供一个可以在您自己的项目中实现的函数。此函数可以在VBA中使用,也可以用作工作表函数,例如
=replaceFloatingIntegraters(A1)

您需要通过转到VBE菜单中的“工具、引用”将引用添加到
Microsoft VBScript正则表达式5.5

打破模式
  • (…)
    这是一个捕获组。此组中捕获的任何内容都可以替换为
    .Replace()
    函数
  • \b
    这是一个单词边界。我们之所以使用它,是因为我们想从边到边测试任何“单词”(在我们的例子中,包括只包含数字的单词)
  • \d+\b
    这将匹配任何数字(
    \d
    ),一到无限次
    +
    与下一个单词边界
    \b
  • \s?
    将匹配单个空白字符,但如果此字符存在,则它是可选的
您可以查看此个性化页面,查看其与您的数据的匹配情况。此处匹配的任何内容都将替换为空字符串

Function ReplaceFloatingIntegers(Byval inputString As String) As String

    With New RegExp
        .Global = True
        .MultiLine = True
        .Pattern = "(\b\d+\b\s?)"
        If .Test(inputString) Then
            ReplaceFloatingIntegers = .Replace(inputString, "")
        Else
            ReplaceFloatingIntegers = inputString
        End If
    End With

End Function