我对编程非常陌生,虽然有几个类似的问题要问我,但我似乎无法让他们为我工作需要。从VBA内部和之后的单元格中删除不需要的字符(excel)
我想要的是能够将原始数据复制到列A中,命中宏上的运行,并且它应该删除我希望保留的数据前后都会导致包含数据的单元格中的任何不需要的字符我想要的。我也希望它通过列中的所有单元格,但要记住一些单元格可能为空。
,我想保持数据的格式如下: L1-somedata-0000
的-somedata-文本将改变,但 - 醚方将永远存在,在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
我已经把我的代码,我已经这么远,它是所有经过的每个细胞,如果它匹配它只是删除,我想保留,以及我想要的东西,文字删除!
我真的希望所有这些都能让你感觉到! 任何帮助将不胜感激。
Chris
或一个简单的Excel公式... –
@ChrisRelf是“ - ”字面部分的数据保留吗? –
同样在'L1-somedata-0000'将“somedata”有“ - ”,例如'L1-some-data-1234' –