huuthang1805
Thành viên mới

- Tham gia
- 30/10/23
- Bài viết
- 1
- Được thích
- 0
Option Explicit
Public Function ChuoiTuChuoi(CellChuoi As Range) As String
Dim Regex As Object
Dim Chuoi As Object
Set Regex = CreateObject("vbscript.regexp")
With Regex
.Global = True
.Pattern = "H\d+xW\d+xD\d+"
Set Chuoi = Regex.Execute(CellChuoi)
End With
ChuoiTuChuoi = Chuoi(0)
End Function
Function tachso(CellChuoi As Range)
Dim arr As Variant
Dim i&
arr = Split(ChuoiTuChuoi(CellChuoi), "x")
For i = LBound(arr) To UBound(arr)
arr(i) = Mid(arr(i), 2, Len(arr(i)))
Next
tachso = arr
End Function
Đối với tôi, ps là tiếng Tây nhé (postscript - từ tiếng Latin postscriptum; nghĩa là write after)...
PS: Các bác có cách nào lấy trực tiếp 3 số bằng regex (bỏ qua H, W, D) luôn không ạ?
Hehe, bác thật là thánh soi.Đối với tôi, ps là tiếng Tây nhé (postscript - từ tiếng Latin postscriptum; nghĩa là write after)
Option Explicit
Public Function tachso2(CellChuoi As Range)
Dim Regex As Object
Dim Chuoi As Object
Dim eVal, arrReg(2), i
Set Regex = CreateObject("vbscript.regexp")
With Regex
.Global = True
.Pattern = "\bH(\d+)xW(\d+)xD(\d+)\b"
End With
Set Chuoi = Regex.Execute(CellChuoi)
For Each eVal In Chuoi(0).SubMatches
arrReg(i) = eVal
i = i + 1
Next eVal
tachso2 = arrReg
End Function
Option Explicit
Sub abc()
Dim DL
Dim KQ
Dim i, j
DL = Sheet1.Range("A6").CurrentRegion
ReDim KQ(1 To UBound(DL), 1 To 3)
With CreateObject("VbScript.RegExp")
.Global = True
.Pattern = "\d+"
For i = 1 To UBound(DL)
For j = 0 To 2
KQ(i, j + 1) = .Execute(DL(i, 1))(j)
Next j
Next i
End With
Sheet1.Range("C6").Resize(UBound(KQ), 3) = KQ
End Sub
Đó là quan niệm chủ quan của những người không thích cách làm việc của tôi.Hehe, bác thật là thánh soi.
...