thao nguyen01
Thành viên thường trực




- Tham gia
- 8/12/19
- Bài viết
- 241
- Được thích
- 30
Lọc lấy những dòng có đủ họ tên và số CMND rồi làm.
sau khi so sánh từng câu chử. có thể đoán là thành viên này 80%. do bị khóa nick
hiénlinh197
là 1 nhé mọi người. Khóa ních kia thì nó tạo nick này. Vì nó đang muốn tách đoạn tin nhắn đánh đề đó. cẩn thận
Bài đã được tự động gộp:
không phải. Khi người ta đánh đề người ta nhắn tin kiểu nội dung là vậy. bây giờ phải nhờ Excel tách ra
Thử lại code sau:
Mã:Sub TachDuLieu() Dim xCell As Range: Dim Vung As Object Set Vung = Range("A2", Range("A6000").End(xlUp)) For Each xCell In Vung xCell.Offset(, 1).Value = Replace(Replace(Replace(Split(xCell.Value, ":")(0), "CCCD", ""), "CMND", ""), ",", "") xCell.Offset(, 2).Value = "'" & Split(xCell.Value, ":")(1) Next xCell End Sub
Xem File.
Dạ, em cảm ơn anh ạ. Vấn đề em gặp phải là khi data của em có cả tên và nội dung thì code chạy đúng ạ. Nhưng vì trong phần nội dung của em có nhiều khi chỉ có tên, không có chứng minh. Lúc đó code sẽ báo lỗi dòng
xCell.Offset(, 2).Value = "'" & Split(xCell.Value, ":")(1)
Em chưa biết xử lý như thế nào đối với nội dung chỉ có tên ạ. Em cảm ơn anh đã giúp em ạ.
Sub Tach()
Dim Nguon
Dim Kq() As String
Dim i, j, k, rws
With Sheet1
rws = .Range("A1").End(xlDown).Row
Nguon = .Range("A2:A" & rws)
ReDim Kq(1 To rws - 1, 1 To 2)
For i = 1 To rws - 1
If IsNumeric(Right(Nguon(i, 1), 1)) = True Then
Nguon(i, 1) = Replace(Nguon(i, 1), ",", "")
k = InStr(Nguon(i, 1), ":")
Kq(i, 2) = Trim(Mid(Nguon(i, 1), k + 1, 100))
k = InStrRev(Left(Nguon(i, 1), k - 1), " ")
Kq(i, 1) = Trim(Left(Nguon(i, 1), k - 1))
Else
Kq(i, 1) = Nguon(i, 1)
End If
Next i
.Range("B2").Resize(UBound(Kq), UBound(Kq, 2)).ClearContents
.Range("B2").Resize(UBound(Kq), UBound(Kq, 2)) = Kq
End With
End Sub
Mã:Sub Tach() Dim Nguon Dim Kq() As String Dim i, j, k, rws With Sheet1 rws = .Range("A1").End(xlDown).Row Nguon = .Range("A2:A" & rws) ReDim Kq(1 To rws - 1, 1 To 2) For i = 1 To rws - 1 If IsNumeric(Right(Nguon(i, 1), 1)) = True Then Nguon(i, 1) = Replace(Nguon(i, 1), ",", "") k = InStr(Nguon(i, 1), ":") Kq(i, 2) = Trim(Mid(Nguon(i, 1), k + 1, 100)) k = InStrRev(Left(Nguon(i, 1), k - 1), " ") Kq(i, 1) = Trim(Left(Nguon(i, 1), k - 1)) Else Kq(i, 1) = Nguon(i, 1) End If Next i .Range("B2").Resize(UBound(Kq), UBound(Kq, 2)).ClearContents .Range("B2").Resize(UBound(Kq), UBound(Kq, 2)) = Kq End With End Sub
Lọc phân loại trước rồi mới Flash Fill. Chứ không làm ngược thế kia.Dạ, hôm qua em có chạy Flash Fill sau đó lọc bỏ chọn những dòng ở cột C là tên mà không phải là số, nhưng do dữ liệu hơi nhiều nên việc bỏ lọc khá mất thời gian ạ. Do em bỏ lọc bằng cách làm thủ công ạ.
Lọc phân loại trước rồi mới Flash Fill. Chứ không làm ngược thế kia.