我需要从单元格内的数字中删除所有文本,然后将两个数字拆分到两个单元格中,并将格式设置为数字,而不是文本。该单元格包含以下格式的文本/数字:
between 150,000 and 159,999 per annum
between 60 and 65 per hour
between 70.00 and 74.00 per hour
屏幕截图1(之前):
![](https://i.stack.imgur.com/vo5DH.png)
可能还有数千条其他线路,它们总是从 H2 开始。两边都有被占领的牢房。
如果可能的话,代码需要形成一个更大的宏的一部分,该宏在之前和之后都有操作,因此能够将其复制并粘贴到中间会很棒。
期望结果(之后):
![](https://i.stack.imgur.com/uqE2O.png)
这是示例文档的链接,因为我不确定如何在此处上传 -http://www.filedropper.com/sample_13
请运行以下步骤:
- 在 H 和 I 之间手动添加列,该列一开始应为空。
-
将此函数添加到您的 VBA 项目中:
Public Function GetNthNumberAlternative(sMark As String, iOrder As Integer) As String
'regexp declaration
Dim objRegExp As Object
Set objRegExp = CreateObject("vbscript.regexp")
With objRegExp
.Global = True
.Pattern = "\d+[.,]\d+|\d+"
GetNthNumberAlternative = .Execute(sMark)(iOrder - 1).Value
End With
End Function
-
将此子例程添加到您的 VBA 项目中:
Sub Run_Function()
Dim Cell As Range, tmpText As String
For Each Cell In Selection.Cells
tmpText = Cell.Value
Cell = GetNthNumberAlternative(tmpText, 1)
Cell.Offset(0, 1) = GetNthNumberAlternative(tmpText, 2)
Next Cell
End Sub
选择 H 列中要处理的单元格范围(提示:在开始时选择 2-3 以了解其想法)
run Run_Function()
子程序...
对您提供的示例数据进行了尝试和测试!
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)