实际上我想在 Excel 2010 中在同一个单元格中拆分字符和数字
我的单元格是这样的:test03ok
另一个单元格可能是:34test
我想将数字与字母分开,因此上述两个示例的预期输出将是
测试 03 确定
34 测试
这可以在没有 VBa 的情况下在 Excel 中完成吗?还是必须使用 VBa?
答案1
这是一个基于正则表达式的函数,应该可以解决问题。将其粘贴到您从 VBA 编辑器菜单插入的标准模块中。您可以通过单击Visual Basic在开发人员选项卡。然后选择插入->标准模块在菜单上。
您还需要设置对Microsoft VBScript Regular Expressions 5.5
库的引用。为此,请单击工具->参考在编辑器菜单上。向下滚动找到列表并勾选它以设置引用。
正则表达式专家希望改进我使用的模式。它会在某些字符串中插入多余的空格,我使用工作表TRIM
函数成功地将其去掉了。
Function ReNSpace(text As String)
Dim regex As New RegExp
regex.Pattern = "(?:(\D+)?(\d+))|(?:(\D+)(\d+)?)"
regex.Global = True
regex.IgnoreCase = True
' Test if a match is found
If regex.Test(text) = True Then
ReNSpace = WorksheetFunction.Trim(regex.Replace(text, "$1 $2 $3 $4"))
Else
ReNSpace = CVErr(xlErrValue)
End If
Set regex = Nothing
End Function