【发布时间】:2015-03-14 05:42:24
【问题描述】:
我有什么:
- B 列中包含大约 1000 个报告标题的列表。
- 其中一些标题在文本和数字字符串的某处有一个用括号括起来的四位数字(例如:
(3672))。 - 我想在同一行的 C 列中提取这四个数字 - 不带括号。
- 如果B列中没有带括号的四位数字,则在C列中返回“”。
到目前为止我所拥有的:
我可以成功识别 B 列中的单元格,这些单元格中有四位数字用括号括起来。问题是它返回了包括四个数字在内的整个标题。
取自:VBA RegEx extracting data from within a string
注意:我正在使用 Excel Professional Plus 2010,已选中“Microsoft VBScript 正则表达式 5.5”旁边的框。
Sub ExtractTicker()
Dim regEx
Dim i As Long
Dim pattern As String
Set regEx = CreateObject("VBScript.RegExp")
regEx.IgnoreCase = True
regEx.Global = True
regEx.pattern = "(\()([0-9]{4})(\))"
For i = 2 To ActiveSheet.UsedRange.Rows.Count
If (regEx.Test(Cells(i, 2).Value)) Then
Cells(i, 3).Value = regEx.Replace(Cells(i, 2).Value, "$2")
End If
Next i
End Sub
【问题讨论】: