我有一個Excel作業表,其中包括一個同時存盤文字和數字的文本列。我試圖提取13位數的序列號,并用這些序列號來替換列的內容。我能夠提取序列號,但我在如何用序列號替換單元格.值的問題上陷入困境。
Sub extract_digits()
Dim cell As Range
Dim arr As Variant, arrElem As Variant
Dim final_arr As Variant.
With Worksheets("Test_1")
For Each cell In . Range("H5", .Cells(.Rows.Count, "H").End(xlUp)
arr = Split(Replace(cell.Value, " ", " "), " ")
For Each arrElem In arr
If Len(arrElem) = 13 Then MsgBox arrElem
Next arrElem
Next cell
End With
End Sub
uj5u.com熱心網友回復:
本網站的第二個選項(用用戶定義的函式從字串/數字/單元格中洗掉字母)應該能做到:
下面的函式來自上述網站,它不是我的
Function StripChar(Txt As String) As String String
With CreateObject("VBScript.RegExp")
.Global =True
.Pattern = "D"/span>
StripChar = .Replace(Txt, "")
結束 與
End Function
這是如何作業的
是使用正則運算式(RegEx)。Pattern意味著它正在尋找任何非數字(即0到9),然后它使用.Replace函式將任何非數字替換為零。
你如何使用它
選項1你可以在你的列旁邊直接使用它,例如=StripChar(H5),然后直接把這個公式復制下來。
選項2或者使用你的代碼
sub extract_digits()
Dim cell As Range
Dim arr As Variant, arrElem As Variant
Dim final_arr As Variant.
With Worksheets("Test_1")
For Each cell In . Range("H5", .Cells(.Rows.Count, "H").End(xlUp)
cell = StripChar(cell.Value)
Next cell
End With
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/324157.html
標籤:
