Tách dữ liệu trong 1 ô sang ô khác

Liên hệ QC

pt_hcl

Thành viên hoạt động
Tham gia
15/2/11
Bài viết
138
Được thích
2
GPE có thể giúp cách tách dữ liệu trong cột A sang cột B như minh họa được không ạ? Xin cảm ơn! (dùng VBA)
 

File đính kèm

  • tachdulieu.xlsm
    17.9 KB · Đọc: 15
Nếu dữ liệu luôn luôn là dạng như vậy thì chỉ cần tách từ ký tự thứ 15

For Each rg In Range("a1:a3")
rg.Offset(0, 1).Value = Mid(rg.Value, 15, 10)
Next

Nếu dạng có thể khác đi thì dùng hàm split để tách nó theo khoảng trống rồi chọn phần tử cuối cùng.
 
Nếu dữ liệu luôn luôn là dạng như vậy thì chỉ cần tách từ ký tự thứ 15

For Each rg In Range("a1:a3")
rg.Offset(0, 1).Value = Mid(rg.Value, 15, 10)
Next

Nếu dạng có thể khác đi thì dùng hàm split để tách nó theo khoảng trống rồi chọn phần tử cuối cùng.
Dạ, cảm ơn thầy! Thầy có thể chỉ giúp cách thứ hai là nếu kí tự cần tách lúc thì là từ kí tự thứ 15, lúc thì là từ kí tự thứ 14, lúc thì là kí tự thứ 20,... thì dùng hàm splip như thế nào để tách được cho mọi trường hợp ạ? Em đã tìm hiểu về hàm đó theo hướng dẫn của thầy nhưng mày mò vẫn chưa ra? Mong thầy chỉ giúp!
-Ah thầy ơi, khi tách kí tự ra thì kí tự đó không còn ở trong ô cũ nữa (tức là cắt kí tự đó luôn và tách sang ô bên cạnh)
 
Lần chỉnh sửa cuối:
Dạ, cảm ơn thầy! Thầy có thể chỉ giúp cách thứ hai là nếu kí tự cần tách lúc thì là từ kí tự thứ 15, lúc thì là từ kí tự thứ 14, lúc thì là kí tự thứ 20,... thì dùng hàm splip như thế nào để tách được cho mọi trường hợp ạ? Em đã tìm hiểu về hàm đó theo hướng dẫn của thầy nhưng mày mò vẫn chưa ra? Mong thầy chỉ giúp!
-Ah thầy ơi, khi tách kí tự ra thì kí tự đó không còn ở trong ô cũ nữa (tức là cắt kí tự đó luôn và tách sang ô bên cạnh)
Như thế này chẳng hạn :
PHP:
Sub Tachso()
Dim i As Long
Dim dArr, sArr()
    sArr = Range("A1:A" & [A65536].End(xlUp).Row).Value
For i = 1 To UBound(sArr)
    dArr = Split(sArr(i, 1), " ")
    Cells(i, 2) = dArr(UBound(dArr))
Next
End Sub
Hoặc đưa vào mảng rùi gán 1 lần :

PHP:
Sub Tachso()
Dim i As Long
Dim Temp, sArr(), dArr()
    sArr = Range("A1:A" & [A65536].End(xlUp).Row).Value
    ReDim dArr(1 To UBound(sArr), 1 To 1)
For i = 1 To UBound(sArr)
    Temp = Split(sArr(i, 1), " ")
    dArr(i, 1) = Temp(UBound(Temp))
Next
[C1].Resize(i - 1, 1) = dArr
End Sub
 
Lần chỉnh sửa cuối:
mình đang muốn tách lấy chuỗi theo điều kiện mình dùng hàm Split nhưng được nhờ các bạn xem giúp mình. Mình cảm ơn
Sub sms() Dim lastrow_GL As Long, i As Long, lastrow_LN As Long Dim Rng As Range Dim strTmp As String 'Sheet1.Activate 'Set Rng = Sheet3.UsedRange lastrow_GL = Sheets(1).Cells(Sheets(1).Rows.Count, "A").End(xlUp).Row 'lastrow_LN = Sheets(1).Cells(Sheets(1).Rows.Count, "A").End(xlUp).Row strTmp = Sheet1.Range("E1").Value MsgBox strTmp ' tach LAV trong file phi For i = 4 To lastrow_GL Sheet1.Range("C" & i).Value = tachLAV(Sheet1.Range("A" & i), strTmp) Next End Sub Public Function tachLAV(str As String, lav As String) On Error GoTo Er str = Mid(str, InStr(1, str, lav, 1)) tachLAV = Split(str, "-") If tachLAV = "" Then tachLAV = 0 Exit Function Er: tachLAV = "" End Function
 

File đính kèm

  • tachchuoi.xlsm
    142.2 KB · Đọc: 6
Web KT

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

Back
Top Bottom