Kết quả 1 đến 10 của 10

Chủ đề: muốn tạo add in tìm mã số cmnd với kiểu dữ liệu số 0xxxxx

  1. #1
    halalavn276 Guest

    muốn tạo add in tìm mã số cmnd với kiểu dữ liệu số 0xxxxx

    chào các bạn
    mình có một hàm định nghĩa nhưng làm hoài không ra mong các bạn cứu bồ với
    bt: minh có một dãy số cmnd và muốn dựa vào dãy cmnd đó để tìm ra nơi cấp vd 3 số đầu 351 là an giang, nhưng khi làm tới số 021,022,023 của hcm thì nó lại không hiểu và mình nhập giá trị vào phần Case la 080 thi sau đó lại bỏ đi số 0 đầu tiên còn 08 nên lệnh không thực hiện được
    các bạn xem add in mình đính kèm nhen

  2. #2
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi ptm0412
    4 cái sai:
    - Số CMND có trường hợp có số 0 ở đầu, mà Function macmnd(maso As Double), nó vất số 0 đầu là chắc chắn.
    - Lấy left(maso, 3), ra 3 ký tự, mà select case 20, 21, 22 chỉ có 2 ký tự
    - Lấy left ra kêt quả text mà select case toàn là số, lẽ ra phải là "360", "125", ...
    - Coi maso là double, thì số 0 đầu bị mất. Mà lấy left, thì left(021022023, 3) sẽ là "210" chứ có phải 021 đâu mà làm gọn là 21?
    bạn có thể sửa được hông chứ mình cũng hông rành lắm , định dạng case mình đánh là 021 nhưng khi enter xuống dòng thì nó lại là 21
    nên vì thế mình mới cần phải gỡ rối đó bạn , loay hoay cả đêm rùi
    mong thỉnh giáo

    thanks

  3. #3
    daikaxomga Guest
    Sửa lại như sau:


    Mã:
    Function macmnd(maso As String)
    và đánh dấu nháy vào tất cả các case: "125", "360", ... Còn các số 2 chữ số thì sửa thành "020", "021", "025", ...

  4. #4
    Ngày tham gia
    Aug 2015
    Bài viết
    0
    Trích dẫn Gửi bởi ptm0412
    Sửa lại như sau:


    <div class="bbcode_container">
    <div class="bbcode_description">Code:
    </div>
    </div>
    Bạn ơi mình cũng đã thử với cách đó nhưng hình như trong định dạng case không cho sử dụng dấu " " , bạn thử lại giúp minh nha
    thanks nhiều luôn đó

  5. #5
    Thanh thanh Guest
    Trích dẫn Gửi bởi chanmenhanmay
    Bạn ơi mình cũng đã thử với cách đó nhưng hình như trong định dạng case không cho sử dụng dấu " " , bạn thử lại giúp minh nha
    thanks nhiều luôn đó
    Thường tôi thử rồi mới viết bài. Vả lại, không bao giờ VBA chỉ cho phép dùng select case với số mà không cho dùng với chuỗi.
    - Bạn đã thay As Double thành As String chưa?
    - Dữ liệu CMND của bạn nếu có số 0 đầu bạn có dùng dấu ' không? Thí dụ '021202023?

  6. #6
    lehieuh90 Guest
    Trích dẫn Gửi bởi chanmenhanmay
    cần gở rối, gấp

    thanks
    Cứ làm theo hướng dẫn của Thầy Ptm là đúng rồi bạn ạ
    Mình sửa 3 trường hợp thôi nhé ( nhiều quá, chóng mặt lắm)

  7. #7
    hungthinh2508 Guest
    không được bạn ơi, mình đã thử cả rồi
    bạn xem lại dùm mình nhen

  8. #8
    nguoidoi893 Guest
    Trích dẫn Gửi bởi chanmenhanmay
    không được bạn ơi, mình đã thử cả rồi
    bạn xem lại dùm mình nhen
    Vầy đi cho dễ nha! Bạn nói "không được" mình cũng chẳng biết nó "không được" thế nào!
    Thôi thì bạn cứ gữi cái file đang "không được" đấy lên đây nhé!

  9. #9
    txluyen Guest
    Bài này sao không dùng hàm MATCH cho sướng nhỉ
    Ví dụ thế này:

    Mã nguồn PHP:
    Function macmnd1(maso As String) As String Dim Ma(), Noi(), vt As Long On Error Resume Next macmnd1 = "SAI 3 SO DAU HOAC CHUA CAP NHAT" Ma = Array("011", "020", "031", "060", "070", "080", "090", _ "100", "112", "113", "121", "125", "132", "135", "141", _ "145", "151", "162", "164", "168", "170", "171", "181", _ "183", "190", "191", "194", "197", "200", "201", "205", _ "212", "215", "220", "225", "230", "233", "240", "245", _ "250", "261", "264", "270", "270", "273", "280", "285", _ "290", "290", "301", "310", "321", "331", "334", "341", _ "351", "360", "363", "365", "370", "381", "385") Noi = Array("HNO", "HCM", "HPH", "YBA", "TQU", "CBA", "TNG", _ "QNI", "HTA", "HBI", "BGI", "BNI", "PTH", "VPH", "HDU", _ "HYE", "TBI", "NDI", "NBI", "HNA", "BKA", "THO", "NAN", _ "HTI", "LCA", "TTH", "QBI", "QTR", "LSO", "DNA", "QNA", _ "QNG", "BDI", "PYE", "KHO", "GLA", "KON", "DLA", "DNO", _ "LDO", "BTH", "NTH", "DNI", "SLA", "BRV", "BDU", "BPH", _ "HGA", "TNI", "LAN", "TGI", "BTR", "VLO", "TVI", "DTH", _ "AGI", "CTH", "HGI", "STR", "KGI", "CMA", "BLI") vt = WorksheetFunction.Match(Left(maso, 3), Ma) If vt Then macmnd1 = Noi(vt - 1)End Function  
    Select Case dài lòng thòng
    -----------------------
    Tuy nhiên trong phần quy định về mã và nơi cấp có chút sai sót:
    - Mã đầu 270 vừa là DNI lại vừa là SLA
    - Mã đầu 290 vừa là HGA lại vừa là TNI
    Sửa lại chổ này nhé! Và khi sửa xong phải đặt lại vị trí cho chính xác ---> Vì dùng hàm MATCH theo kiểu dò không chính xác nên Array Ma đang được sort tăng dần

  10. #10
    phuongtrandinh Guest
    4 cái sai:
    - Số CMND có trường hợp có số 0 ở đầu, mà Function macmnd(maso As Double), nó vất số 0 đầu là chắc chắn.
    - Lấy left(maso, 3), ra 3 ký tự, mà select case 20, 21, 22 chỉ có 2 ký tự
    - Lấy left ra kêt quả text mà select case toàn là số, lẽ ra phải là "360", "125", ...
    - Coi maso là double, thì số 0 đầu bị mất. Mà lấy left, thì left(021022023, 3) sẽ là "210" chứ có phải 021 đâu mà làm gọn là 21?

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •