Các bác cho e xin add-in lấy số trong chuỗi (1 người xem)

Liên hệ QC

Người dùng đang xem chủ đề này

nguyendinhhien

Thành viên chính thức
Tham gia
6/11/07
Bài viết
60
Được thích
70
Giả sử e có nhiều dòng dữ liệu kiểu như "Công ty TNHH XD & Phát triển ABC HĐ: 020513-ĐT/XYX-ABC/XL2012", trong đoạn Tex đó e muốn lấy đoạn số "020513" gồm 06 ký tự số, còn lại các tex khác có thể khác nhau. Bác nào viết giùm e code với ạ?
E trình độ gà con, có gì các bác chỉ giáo ạ!+-+-+-+

[TD="class: xl63, width: 558"][/TD]
 
Giả sử e có nhiều dòng dữ liệu kiểu như "Công ty TNHH XD & Phát triển ABC HĐ: 020513-ĐT/XYX-ABC/XL2012", trong đoạn Tex đó e muốn lấy đoạn số "020513" gồm 06 ký tự số, còn lại các tex khác có thể khác nhau. Bác nào viết giùm e code với ạ?
E trình độ gà con, có gì các bác chỉ giáo ạ!+-+-+-+

[TD="class: xl63"][/TD]
Vậy thì phải cho nhiều trường hợp lên để mà biết đường mò chứ.
 
Vậy thì phải cho nhiều trường hợp lên để mà biết đường mò chứ.

Cám ơn bác! Giả sử ntn ạ:
1. Công ty TNHH XD & Phát triển ABC HĐ: 020513-ĐT/XYX-ABC/XL2012
2. Công ty ĐT& Phát triển DEF HĐ- 150124 - ĐT/XYX- DEF/XL2011
3. Doanh nghiệp tư nhân JQK HĐ: 301223 ĐT/XYX - JQK/XL2009
....
Đại ý là chỉ nhờ vào đếm cái số kia gồm 6 số nằm trong chuỗi dài nhoằng nằm trong ô thôi ạ.
 
Cám ơn bác! Giả sử ntn ạ:
1. Công ty TNHH XD & Phát triển ABC HĐ: 020513-ĐT/XYX-ABC/XL2012
2. Công ty ĐT& Phát triển DEF HĐ- 150124 - ĐT/XYX- DEF/XL2011
3. Doanh nghiệp tư nhân JQK HĐ: 301223 ĐT/XYX - JQK/XL2009
....
Đại ý là chỉ nhờ vào đếm cái số kia gồm 6 số nằm trong chuỗi dài nhoằng nằm trong ô thôi ạ.
Bạn hông có file thì chỉ theo kiểu hông file nhé:
Chọn vùng dữ liệu cần lấy số:
Ctrl + H lần 1 : Khung Find What: *HĐ , Khung Replace With: để trống
Ctrl + H lần 2 : Khung Find What: ĐT* ,Khung Replace With: để trống
Việc còn lại chỉ cần dùng hàm để tách chuỗi đơn giản còn lại. Chúc bạn thành công.
 
Cám ơn Thày ạ!}}}}}
Nếu thày cho code nữa thì hay quá
 
Các thày xem giúp em theo file đính kèm ạ, vì nhiều dữ liệu ko chứa ký tự "HĐ" và "ĐT" nên Replace chưa triệt để ạ
 

File đính kèm

tham khảo code này nhé bạn
Mã:
Sub MidNumber()
CHIEUDAI = ([A65536].End(xlUp).Row) '<= so dong hien thi tai cot A
For h = 0 To CHIEUDAI
so = "0123456789"
kytu = " ~`'!@#$%^&*()_+=-[{]}:<>?;',./qwertyuiopasdfghjklzxcvbnm"
b = 0
t = 0
With ActiveCell
  tes = .Offset(h, 0).Value
End With
    ls = Len(so)
    lk = Len(kytu)
    lt = Len(tes)
    For i = 1 To lt
        For j = 1 To ls
            aso = Mid(so, j, 1)
            ates = Mid(tes, i, 1)
                If aso = ates Then
                    If b = 0 Then b = i Else c = i
                End If
        Next j
    Next i
        If b > 0 And i > 0 Then
            btes = Mid(tes, b, i)
            lbt = Len(btes)
    'vong lap moi
        tesmoi = btes '[c4]
        lentesmoi = Len(tesmoi)
        For k = 1 To lentesmoi
            kttm = Mid(tesmoi, k, 1)
            For l = 1 To lk
                ktlk = Mid(kytu, l, 1)
                If kttm = ktlk Then
                    If t = 0 Then t = k
                    End If
            Next l
        Next k
                    If t > 0 Then
                        With ActiveCell
                            .Offset(h, 1).Value = "'" & Mid(tesmoi, 1, t - 1)
                        End With
                    End If
                End If
Next h
End Sub
có vài chỗ nó ra sai nha bạn. ví dụ như bạn cần lấy số 4700 trong dãy này "Keo 502 giá: 4700 đồng" thì sẽ ra sai. nó chỉ lấy được số 502 à.
do mình không biết VBA nên chỉ có thể viết được như vậy.
 
Lần chỉnh sửa cuối:
Web KT

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

Back
Top Bottom