如何修改Excel VBA正则函数提取单元格内第二个4位数字
提取第二个4位数字的解决方案
嘿,我来帮你搞定这个!从你提供的截图能看到,单元格内容里有多组4位数字,你已经能提取第一组,现在要拿第二组的1970对吧?其实你的正则和全局匹配设置已经没问题了,只需要改一点点代码就能实现。
关键修改点:
- 你的正则表达式
(\d{4})加上RE.Global = True,已经能捕获所有符合条件的4位数字,它们会按顺序存在allMatches集合里。 - 集合索引是从0开始的:
Item(0)是第一个4位数字,Item(1)就是你要的第二组(也就是1970)。 - 为了避免输入字符串里不足2组4位数字时出错,最好加个判断条件。
修改后的完整VBA函数:
Function getSecondFourDigits(addr As String) Dim allMatches As Object Dim RE As Object Set RE = CreateObject("vbscript.regexp") RE.Pattern = "(\d{4})" RE.Global = True RE.IgnoreCase = True Set allMatches = RE.Execute(addr) ' 确保至少有2个匹配项再取值 If allMatches.Count >= 2 Then result = allMatches.Item(1).SubMatches.Item(0) Else ' 如果没有足够的匹配,返回空字符串(也可以改成你需要的提示) result = "" End If getSecondFourDigits = result End Function
要是之后你需要提取第三组4位数字,只需要把索引改成2就行,逻辑完全一致~
内容的提问来源于stack exchange,提问作者thomasuponor
相关产品推荐
相关产品推荐

