Code VBA tách chuổi sau dấu "\"

Liên hệ QC

Sóc trăng miền nhớ

Thành viên mới
Tham gia
3/6/20
Bài viết
15
Được thích
0
Các bạn cho mình xin code VBA tách chuổi sau ký tự "\", sang một ô khác

File mong muốn kết quả (phần tô vàng)
Note: số lượng dòng có thể nhiều hơn

xin cảm ơn
 

File đính kèm

  • tach chuoi.xlsx
    8.4 KB · Đọc: 23
Các bạn cho mình xin code VBA tách chuổi sau ký tự "\", sang một ô khác

File mong muốn kết quả (phần tô vàng)
Note: số lượng dòng có thể nhiều hơn

xin cảm ơn
Ngoài các cách trên thì dùng công thức này tại B1 (công thức rất quen thuộc ở GPE):
Mã:
=TRIM(MID(SUBSTITUTE($A1,"\",REPT(" ",100)),100*(COLUMN(A1)-1)+1,100))
 
Upvote 0
Các bạn cho mình xin code VBA tách chuổi sau ký tự "\", sang một ô khác

File mong muốn kết quả (phần tô vàng)
Note: số lượng dòng có thể nhiều hơn

xin cảm ơn
Còn đây là code VBA. Kết quả điền vào vùng bắt đầu từ ô B1 như file mẫu. Bạn có thể sửa lại địa chỉ trong code.
 

File đính kèm

  • tach chuoi_Sóc trăng miền nhớ.xlsm
    15.9 KB · Đọc: 17
Upvote 0

File đính kèm

  • Tach chuoi.xlsm
    14.6 KB · Đọc: 8
Upvote 0
Hi, mình không rành nên mới nhờ các bạn.
Split thì chắc thế này (Chế biến từ code bác Maika):
Mã:
Option Explicit

Sub TachDuongDan()
Dim i As Long, j As Long, k As Long
Dim arrS, arrT, Tmp
arrS = Range("A1:A" & Range("A65536").End(xlUp).Row).Value
ReDim arrT(1 To UBound(arrS, 1), 1 To 100)

For i = 1 To UBound(arrS, 1)
    Tmp = Split(arrS(i, 1), "\")
    If UBound(Tmp) + 1 > k Then k = UBound(Tmp) + 1
    For j = 0 To UBound(Tmp)
        arrT(i, j + 1) = Tmp(j)
    Next
Next
Range("B1").Resize(1000, 100).ClearContents
Range("B1").Resize(UBound(arrS, 1), k).Value = arrT
End Sub
 
Upvote 0
Split thì chắc thế này (Chế biến từ code bác Maika):
Mã:
Option Explicit

Sub TachDuongDan()
Dim i As Long, j As Long, k As Long
Dim arrS, arrT, Tmp
arrS = Range("A1:A" & Range("A65536").End(xlUp).Row).Value
ReDim arrT(1 To UBound(arrS, 1), 1 To 100)

For i = 1 To UBound(arrS, 1)
    Tmp = Split(arrS(i, 1), "\")
    If UBound(Tmp) + 1 > k Then k = UBound(Tmp) + 1
    For j = 0 To UBound(Tmp)
        arrT(i, j + 1) = Tmp(j)
    Next
Next
Range("B1").Resize(1000, 100).ClearContents
Range("B1").Resize(UBound(arrS, 1), k).Value = arrT
End Sub
Ờ nhỉ. Mình quên mất split dù dùng mấy lần rồi
 
Upvote 0
Chỉ 1 dòng lệnh

Sub Macro()
Range("A1", Range("A65536").End(xlUp)).TextToColumns Destination:=Range("B1"), DataType:=xlDelimited, OtherChar:="\"
End Sub
Sau mỗi dấu "\" là sang một cells mới bác ơi. thanks ạ
Bài đã được tự động gộp:

Ngắn và dỏm :p:

Sub NganVaDom()
For i = 1 To Range("A65536").End(xlUp).Row
s = Split(Cells(i, "A").Value, "\")
Cells(i, "B").Resize(, UBound(s) - LBound(s) + 1).Value = Application.Transpose(Application.Transpose(s))
Next i
End Sub
Thanks bác
 
Upvote 0
Upvote 0
Web KT

Bài viết mới nhất

Back
Top Bottom