我对编程很陌生,尽管有人问了几个与我类似的问题,但我似乎无法让它们满足我的需求。
我想要的是能够将原始数据复制到 A 列,在宏上运行,它应该删除我想要保留的数据之前和之后的所有不需要的字符,从而导致一个单元格只包含我想要的数据。我还希望它遍历列中的所有单元格,记住某些单元格可能是空的。
我要保留的数据格式如下:L1-somedata-0000
-somedata- 文本会改变,但-ether 端将始终存在,L1 有时会是 L2,0000(可能是任何 4 个数字)有时会是任何 3 个数字。列中也可能有一些行没有有用的数据,这些应该被删除。最后,一些单元格不会包含任何不需要的数据,这些应该保持不变。
Sub Test()
Dim c As Range
For Each c In Range("A2:A" & Range("A" & Rows.Count).End(xlUp).Row)
c = removeData(c.text)
Next
End Sub
Function removeData(ByVal txt As String) As String
Dim result As String
Dim allMatches As Object
Dim RE As Object
Set RE = CreateObject("vbscript.regexp")
RE.Pattern = "(L1-somedata-\d{4}|\d{3})"
RE.Global = True
RE.IgnoreCase = True
Set allMatches = RE.Execute(text)
If allMatches.Count <> 0 Then
result = allMatches.Item(0).submatches.Item(0)
End If
ExtractSDI = result
End Function
我已经放了我到目前为止的代码,它所做的只是遍历每个单元格,如果它匹配它只会删除我想要保留的文本以及我想要删除的东西!
我真的希望所有这些都有意义!任何帮助都感激不尽。
克里斯