Dana123
Thành viên chính thức
- Tham gia
- 13/10/20
- Bài viết
- 55
- Được thích
- 5
- Giới tính
- Nữ
Bạn tìm và lập 1 bảng chuyển đổi đầu số điện thoại cũ -> mới đưa lên đâyChào cộng động Excel. Mình có 1 file cần xóa bỏ các số không cần thiết có dạng ( 052xxxxxx, 0511.xxx.xxx và 17/11 hoặc 17.11 ), bỏ số 9 ở đầu số điện thoại, và đôỉ sang số điện thoại mới.
Nhờ cộng đồng xem có triển khai được không ạ. Vì đăng bài lần đầu nên có gì sai sót mong được bỏ qua. Cảm ơn
View attachment 247297
Mình tìm được 1 bài trên mạng đây ạBạn tìm và lập 1 bảng chuyển đổi đầu số điện thoại cũ -> mới đưa lên đây
Hiện tại mình hỗ trợ được bạn mấy mục đầu, mục thứ 3 là xóa số công ty và ngày thì chờ các bác khác xem tiếp nhé:Mình tìm được 1 bài trên mạng đây ạ
Option Explicit
Function ChuyenDoi(Rng As Range) As String
If Rng.Rows.Count * Rng.Columns.Count > 1 Then
MsgBox "Chon mot o"
Exit Function
End If
Dim Regx As Object, Tmp As String, BangTra(), Res As String
Dim I As Long
BangTra = Sheets("BangTra").Range("B2:C22").Value
Set Regx = CreateObject("VBScript.Regexp")
With Regx
.Global = True
.Pattern = "(9)([0-9]{10,11})"
Tmp = .Replace(Rng, "$2")
End With
For I = 1 To UBound(BangTra, 1)
With Regx
.Global = True
.Pattern = "(" & BangTra(I, 1) & ")([0-9]{7})"
Debug.Print .Pattern
Tmp = .Replace(Tmp, BangTra(I, 2) & "$2")
Debug.Print Tmp
End With
Next
ChuyenDoi = Tmp
End Function
Muốn "triển khai" như chữ của bạn dùng thì những việc mà bạn làm được, bạn phải làm chứ không ai làm thay. Chẳng hạn:Mình tìm được 1 bài trên mạng đây ạ
Chỗ này dùng Rng.Cells.Count là được rồi mà.If Rng.Rows.Count * Rng.Columns.Count > 1 Then
MsgBox "Chon mot o"
Exit Function
End If
Nghĩ được cái gì lúc đó là "bụp" ngay á bác! Cảm ơn bác chỉ bảoChỗ này dùng Rng.Cells.Count là được rồi mà.
Cảm ơn bạn rất nhiềuHiện tại mình hỗ trợ được bạn mấy mục đầu, mục thứ 3 là xóa số công ty và ngày thì chờ các bác khác xem tiếp nhé:
PHP:Option Explicit Function ChuyenDoi(Rng As Range) As String If Rng.Rows.Count * Rng.Columns.Count > 1 Then MsgBox "Chon mot o" Exit Function End If Dim Regx As Object, Tmp As String, BangTra(), Res As String Dim I As Long BangTra = Sheets("BangTra").Range("B2:C22").Value Set Regx = CreateObject("VBScript.Regexp") With Regx .Global = True .Pattern = "(9)([0-9]{10,11})" Tmp = .Replace(Rng, "$2") End With For I = 1 To UBound(BangTra, 1) With Regx .Global = True .Pattern = "(" & BangTra(I, 1) & ")([0-9]{7})" Debug.Print .Pattern Tmp = .Replace(Tmp, BangTra(I, 2) & "$2") Debug.Print Tmp End With Next ChuyenDoi = Tmp End Function
Cảm ơn bạn. Mới cưới vợ nên giờ mới vào xem ạMuốn "triển khai" như chữ của bạn dùng thì những việc mà bạn làm được, bạn phải làm chứ không ai làm thay. Chẳng hạn:
- Bảng đầu số 11 số chuyển sang 10 số (chỉ cần 2 cột: thứ nhất là đầu 11 số, thứ hai là đầu 10 số được chuyển sang)
- Bảng các số điện thoại bàn mà bạn muốn xóa bỏ khỏi phần kết quả. Ở 2 dòng dữ liệu ví dụ, tôi thấy bạn muốn bỏ đầu số 0511. Tuy nhiên có dòng 0236 (đầu số mới của 0511), 0510 hoặc 0235 thì sao? Người giúp bạn đâu phải đi đoán mò hoặc làm thay công việc của bạn!?
Thêm nữa gần 1 tháng sau mới thấy bạn quay lại trả lời vào chủ đề. Chứng tỏ bạn cũng chẳng quan tâm lắm.
Cảm ơn bạn đã góp ý. Mình muốn xóa bỏ các số điện thoại bàn cùng các ngày nhập 17/11 và 16.11 ... luôn ạCảm ơn bạn rất nhiều
Bài đã được tự động gộp:
Cảm ơn bạn. Mới cưới vợ nên giờ mới vào xem ạ