我需要从单元格中的数字中删除所有文本,然后将两个数字拆分为两个单元格,并将其格式化为数字,而不是文本.单元格包含以下格式的文本/数字:
between 150,000 and 159,999 per annum
between 60 and 65 per hour
between 70.00 and 74.00 per hour
屏幕截图1(之前):
可能有1000多个其他线路,它们总是在H2开始.任何一侧都有被占用的细胞.
如果可能的话,代码需要构成一个更大的宏的一部分,这个宏之前和之后都有动作,所以能够将它复制并粘贴到中间是很棒的.
期望的结果(之后):
这是一个示例文档的链接,因为我不确定如何在这里上传 – http://www.filedropper.com/sample_13
最佳答案 请运行以下步骤:
>在H& H之间手动添加列我开头应该是空的.
>将此功能添加到您的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_Function()子程序……
试过&测试您提供的样本数据!