编辑我原来的帖子。
在Excel中使用VBA以及正则表达式的新功能。我认为正则表达式为我提供了最好的解决方案,因为字符串的变化很大 我真的很感激任何帮助 - 不是寻找讲义 - 只是想学习。
我的工作簿中有数千个文本条目如下所示(一列):
911407 - Ariens 34" Wide-Area Walk-Behind Mower, 10.5hp Briggs & Stratton, Gear, CARB (SN: 000101 & Above)
911379 (LMSPE CE) - Ariens Razor 21" Self-Propelled Lawn Mower, 175cc Subaru (SN: 020347 - 025999)
08200835 (CE) - Ariens CE AX 136cc Recoil Engine
922013 (ST4) - Ariens Snow Blower, CE 4hp Tecumseh (SN: 000101 & Above)
我想使用Excel VBA in-cell函数(宏也很好,但我必须从某处开始):
使用上面引用的条目得到的结果是:
911407 - Ariens 34" Wide-Area Walk-Behind Mower, 10.5hp Briggs & Stratton, Gear, CARB (SN: 000101 & Above)
911373 (LMP) - Ariens Razor 21" Push Lawn Mower, 175cc Subaru, CE (SN: 035000 - 054999)
08200835 - Ariens CE AX 136cc Recoil Engine, CE
922013 (ST4) - Ariens Snow Blower, 4hp Tecumseh, CE (SN: 000101 & Above)
这是我到目前为止创建的“(CE)”并删除它。我只是通过阅读过去的帖子和实验来做到这一点。
Function TomCEregex(Myrange As Range) As String
Dim regEx As New RegExp
Dim strPattern As String
Dim strInput As String
Dim strReplace As String
strPattern = " \(CE\)"
If strPattern <> "" Then
strInput = Myrange.Value
strReplace = ""
With regEx
.Global = True
.MultiLine = True
.IgnoreCase = False
.Pattern = strPattern
End With
If regEx.Test(strInput) Then
TomCEregex = regEx.Replace(strInput, strReplace)
Else
TomCEregex = "Not Matched"
End If
End If
End Function
显然,我甚至不亲近,但我希望你看到我在努力。
感谢。