使用VBA删除数字周围的文本
我需要从单元格内的数字中删除所有文本,然后将两个数字分隔两个单元格,并将其格式化为数字,而不是文本。 该单元格包含以下格式的文本/数字:
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开始。 有任何一方被占用的单元格。
如果可能的话,代码需要形成一个更大的macros的一部分,在之前和之后都有动作,所以能够将它复制并粘贴到中间是非常好的。
预期结果(之后):
这里是一个示例文档的链接,因为我不知道如何在这里上传 – 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
-
select要处理的列H中的单元格区域(提示:在开始时select2-3来理解该想法)
-
运行
Run_Function()
子程序…
为您提供的样本数据进行了试验和testing!
- 检查单元格是否填充
- closures复制和复制/移动(从工作簿到工作簿)没有promting公式或表.. ..?
- Excel在行中总计最高的N个值
- 在Microsoft HPC上通过Com-interop C#API打开一个excel文件
- 多个单元格范围作为值
- 如何使用VBAdynamicSQL SELECT语句调用MS Access参数查询
- 使用click once on non dev pcs从GAC中缺lessMicrosoft.VisualStudio.OfficeTools.Controls.ManagedWrapper
- OfficeOpenXML excel调整合并了单元格的行的大小
- 在Worksheet_Change过程之前更改目标单元格