doanhoanghai
Thành viên hoạt động



- Tham gia
- 20/12/07
- Bài viết
- 195
- Được thích
- 4
Lung tung thì làm theo kiểu lung tung.Các bác giúp em với ! Em mới làm được tách các số điện thoại ra nhưng do DL lung tung quá chưa biết phải làm sao nữa cả
![]()
Public Sub tachtach()
Dim sArr(), dArr(), I As Long, J As Long, Tem, Str As String
sArr = Range("A2", Range("A2").End(xlDown)).Value
ReDim dArr(1 To UBound(sArr, 1), 1 To 3)
For I = 1 To UBound(sArr, 1)
Str = Replace(sArr(I, 1), ChrW(10), ChrW(32))
Str = Replace(Str, "( ", "(")
Str = Replace(Str, ":", ChrW(32))
Tem = Split(Trim(Str), ChrW(32))
For J = 0 To UBound(Tem)
If InStr(Tem(J), "@") Then
dArr(I, 3) = dArr(I, 3) & ChrW(32) & Tem(J)
ElseIf IsNumeric(Mid(Tem(J), 2, 1)) Or IsNumeric(Mid(Tem(J), 3, 1)) Then
dArr(I, 2) = dArr(I, 2) & ChrW(32) & Tem(J)
Else
dArr(I, 1) = dArr(I, 1) & ChrW(32) & Tem(J)
End If
Next J
Next I
Range("B2").Resize(I - 1, 3) = dArr
End Sub
Cái này file gốc là file gì vậy bạn... Mình không nghĩ người ta ngồi gõ tay ra cái đống này đâu @@
Bạn có thể đưa file gốc lên được không...
Tạm thế này đã đến mai sẽ có cách hoàn hảo![]()
Sớm giúp mình nha. Mình đang phải làm thủ công để tách ra này khổ quá.![]()
Option Explicit
Sub tt()
Dim tach(1 To 60000, 1 To 3), arr, v, tam As Variant, i As Long, mys As String
arr = [a2:a60000]
For i = 1 To UBound(arr)
If arr(i, 1) = "" Then Exit For
tam = Split(arr(i, 1), Chr(10))
For Each v In tam
mys = Trim(v)
If mys <> "" Then
If InStr(1, mys, "@") Then
If tach(i, 3) = "" Then tach(i, 3) = mys Else tach(i, 3) = tach(i, 3) & Chr(10) & mys
Else
If InStr(1, mys, 0) Then
If tach(i, 2) = "" Then tach(i, 2) = Replace(mys, "/", Chr(10)) Else tach(i, 2) = tach(i, 2) & Chr(10) & Replace(mys, "/", Chr(10))
Else
If tach(i, 1) = "" Then tach(i, 1) = Split(mys, "|")(0) Else tach(i, 1) = tach(i, 1) & Chr(10) & Split(mys, "|")(0)
End If
End If
End If
Next
Next i
[b2].Resize(i, 3) = tach
End Sub