Xin nhờ anh, chị giúp đỡ macro tách ngày tháng năm (2 người xem)

Liên hệ QC

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

mrhung2712

Thành viên mới
Tham gia
19/8/10
Bài viết
5
Được thích
0
Như tiêu đề mình có một file (đính kèm) chia tách ngày, tháng, năm sinh của sheet "30" vào thành 3 cột ngày, tháng, năm của sheet "30Tr". Mình dùng tay text to columns thì có vẻ em nó thai sản trơn tru. Nhưng đến khi tập tành cho con bú xài macro thì nó chạy ầm ầm nhưng như kiểu con mới biết đi ngày đi đường ngày tháng đi đường tháng (tách cột ngày ra tháng và ngược lại, đồng thời mất hẳn cái số 0 ở ngày tháng FA). Mình cũng chỉ tập tành chút đỉnh để phát huy tính lười chọt chọt gõ gõ.
Anh, chị nào biết nguyên nhân xin cho mình học lõm chỉ bảo mình chút đỉnh (có hậu tạ nếu anh chị nào ở khu vực Quảng Ngãi). Xin chân thành cảm ơn!

Thông báo với anh, chị số là mình muốn gắn cái file nhưng nó thông báo cáp biển cá mập cắn cáp dây điện nhà mình chuột cắn, xài ké wifi hàng xóm không gửi được. Mình xin được cốp dán cái đoạn lằng nhằng từ record macro để anh, chị tham khảo. Xin thứ lỗi cho sự bất tiện này, chúng tôi sẽ khắc phục sự cố ngay khi có thể:

Range("D2").Select
ActiveCell.FormulaR1C1 = "='30'!R[7]C"
Range("D2").Select
Selection.AutoFill Destination:=Range("D2:D999")
Range("D2:D999").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Application.CutCopyMode = False
Selection.TextToColumns Destination:=Range("D2"), DataType:=xlDelimited, _
TextQualifier:=xlNone, ConsecutiveDelimiter:=False, Tab:=True, _
Semicolon:=False, Comma:=False, Space:=False, Other:=True, OtherChar _
:="/", FieldInfo:=Array(Array(1, 2), Array(2, 2), Array(3, 2)), _
TrailingMinusNumbers:=True


Nôm na là cái ô chứa ngày tháng cả 2 sheet là D2. Bên sheet1 thì là 1 đống 3 cha con, qua sheet2 thì đập ra 3 mảnh D2, E2, F2. Mong các bác chịu khó hình dung.
 

File đính kèm

Lần chỉnh sửa cuối:
Vấn đề quan trọng nhất mà bạn lại quên: FILE ĐÂU?
 
Báo cáo bác ko phải em quên mà lý do đã trình bày ở trên, không đính kèm đc cái của nợ do mạng em nó giật bác ạ. Bây giờ mát trời, đường thông em chọc phát nó lên luôn. Kính gửi bác xem hộ dùm em!
 
Bạn thử chạy macro sau:
PHP:
Sub Chép()
 Dim Cls As Range, Sh As Worksheet
 
 Sheets("30").Select
 Set Sh = ThisWorkbook.Worksheets("30Tr")       'Gán Trang Tính Vo Bién'
 Sh.[B2].CurrentRegion.Offset(1).ClearContents  'Xóa Du Lieu Cu'
 For Each Cls In Range([A3], [A3].End(xlDown))  'Vòng Lap De Chép'
    With Sh.[A65500].End(xlUp)
        Cls.Resize(, 3).Copy Destination:=.Offset(1)    'Chép TT-MaNV-HoTen'
        .Offset(1, 4).Value = Day(Cls.Offset(, 3).Value)   'Chép Ngày Sinh'
        .Offset(1, 5).Value = Month(Cls.Offset(, 3).Value)  'Chép Tháng'
        .Offset(1, 6).Value = Year(Cls.Offset(, 3).Value)   'Chép Nam'
        Cls.Offset(, 4).Resize(, 7).Copy Destination:=.Offset(1, 7)  'Chép Còn Lai'
    End With
 Next Cls
End Sub
 
Bạn thử chạy macro sau:
PHP:
Sub Chép()
 Dim Cls As Range, Sh As Worksheet
 Sheets("30").Select
 Set Sh = ThisWorkbook.Worksheets("30Tr")       'Gán Trang Tính Vo Bién'
 Sh.[B2].CurrentRegion.Offset(1).ClearContents  'Xóa Du Lieu Cu'
 For Each Cls In Range([A3], [A3].End(xlDown))  'Vòng Lap De Chép'
    With Sh.[A65500].End(xlUp)
        Cls.Resize(, 3).Copy Destination:=.Offset(1)    'Chép TT-MaNV-HoTen'
        .Offset(1, 4).Value = Day(Cls.Offset(, 3).Value)   'Chép Ngày Sinh'
        .Offset(1, 5).Value = Month(Cls.Offset(, 3).Value)  'Chép Tháng'
        .Offset(1, 6).Value = Year(Cls.Offset(, 3).Value)   'Chép Nam'
        Cls.Offset(, 4).Resize(, 7).Copy Destination:=.Offset(1, 7)  'Chép Còn Lai'
    End With
 Next Cls
End Sub

Đầu tiên em cảm ơn bác đã nhiệt tình giúp đỡ, nhưng vấn đề của em nó hơi rối. Số là các đồng chí này có một số chỉ có năm sinh nên không đưa được về định dạng ngày tháng năm, kiểu như **/**/1965. Nên chỉ có thể dùng text to columns để tách và chuyển về text. Em dùng thủ công thì tách đc, nhưng khi chạy macro thì nó bị đảo lung tung chảo bác ạ. E chỉ thắc mắc làm thủ công và macro các bước như nhau nhưng sao lại bị đảo bác ạ. Mong bác giúp đỡ!
 
. . . nhưng vấn đề của em nó hơi rối. Số là các đồng chí này có một số chỉ có năm sinh nên không đưa được về định dạng ngày tháng năm, kiểu như **/**/1965.

Theo như mình trước đây thì những người này ta fải yêu cầu họ tự chọn tháng & ngày sinh bổ sung, như 27/02, 8/3, 30/4, 1/05, 2/9, 10/10, 20/10 , , , ,
Lí do hiễn nhiên là anh/chị ra đời fải ở 1 thời điểm nhât định; Không thể là mẹ anh/chị đẻ anh chị trong cả 1 năm được!

Còn nếu vẫn để như vậy (không có ngày tháng sinh) thì sẽ còn vướng nhiều thứ sau này lắm!
Vậy nên bài toán fân chia gì đó của bạn mình sẽ chỉ tham gia đến vậy (Trước thời điểm này mình chưa biết iêu cầu của bạn như vậy, thông cảm nha)

Còn vấn đề Text to Column làm được mà VBA làm không đúng hay không được theo mình là vì môi trường chúng khác nhau;
Cá nước mặn không thể sống ở hồ trên núi được. (Cảm tính của mình đó nha)
 
Web KT

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

Back
Top Bottom