1
我希望能夠將原始數據複製到列A中,命中宏上的運行,並且它應該在我希望保留的數據前後都刪除任何不需要的字符,從而產生單元格只是包含我想要的數據。我也希望它通過列中的所有單元格,但要記住一些單元格可能爲空。刪除不需要的字符VBA(excel)
,我想保持數據的格式如下:somedata0000
或somedata000
有時單元格將包含「垃圾」之前和我想保持數據後,即rubbishsomedata0000
或somedata0000rubbish
或rubbishsomedata0000rubbish
。
,並且有時一個單單元格將包含:
rubbishsomedata0000rubbish
rubbishsomedata0000rubbish
rubbishsomedata0000rubbish
這將需要更改爲:
NEW CELL: somedata0000
NEW CELL: somedata0000
NEW CELL: somedata0000
的 'somedata' 文本不會改變,但在0000(可能是任何4個數字)有時會是任何3個數字。
此外,列中可能有一些行沒有有用的數據;這些應該從工作表中刪除/刪除。
最後,一些單元格將包含完美的somedata0000,這些應該保持不變。
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 = "(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