【发布时间】:2018-07-30 12:56:42
【问题描述】:
我有一个 VBA 宏来从字符串中提取数字序列并将它们分开。
例如单元格 A1 的值为Order No.2 123 Order No.3 234 Order No.4 345
在宏之后,单元格 B1 的值应为 123, 234, 345
由于Order No.A BBB 中A & BBB 的字符数不固定,例如Order No.324 1814406,我不能使用左函数来清除特定数量的字符来解决问题。有人可以给我一些建议吗?
如果我可以为您澄清任何事情,请告诉我。
下面是我现在的宏,这个可以清除非数字字符并返回2, 123, 3, 234, 4, 345
Sub Testing()
str = Range("A1")
For x = 1 To Len(Range("A1"))
If Not IsNumeric(Mid(str, x, 1)) Then
Mid(str, x) = " "
End If
Next x
Range("B1") = Replace(Application.Trim(str), " ", ", ")
End Sub
【问题讨论】:
-
我的建议:您可以使用像 regex101.com/r/E1Q6FL/1 这样的正则表达式来做到这一点。有几个教程如何在 VBA 中使用正则表达式(在 Stack Overflow 和 Google 上都有)。
标签: excel excel-2007 vba