Làm thế nào để chuyển ô về định dạng Date mà vẫn giữ nguyên ngày tháng (không phải đánh lại) (4 người xem)

Liên hệ QC

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

trungvdb

Thành viên thường trực
Tham gia
22/8/08
Bài viết
374
Được thích
171
Nghề nghiệp
Tài chính
File của em cột L họ định dạng theo cách riêng của họ để dễ nhập dữ liệu, nay em muốn chuyển về định dạng kiểu Date để sửa. Nhưng khi định dạng lại nó lại chuyển sang dạng ngày tháng khác (trong khi em vẫn muốn giữ nguyên như ban đầu).

Ví dụ tại ô L1, em muốn sau khi chuyển về định dạng Date nó vẫn hiện là 24/01/2015 (như cũ). Rất mong mọi người chỉ giúp cách làm.
 

File đính kèm

Đây là em chỉ ví dụ thôi, file của em có rất nhiều số liệu, họ không phải chỉ là định dạng 2015 đâu ah (mà còn định dạng 2014, 2016, 2017..) nữa ah.
Thì bạn nên đưa dữ liệu có 2015, 14,16 lên chứ bạn đưa vậy thì làm sao xác định được
 
Em gửi file lên, nhờ các bác giúp cho ah
Cái này dùng code sẽ giải quyết được, nhưng công thức của bạn ở cột L sẽ mất hết, bạn chịu thì tôi code cho. Mà nếu chịu thì nói luôn những ô có dữ liệu thế này 11-12/1/2015 thì tính ra sao?
 
Lần chỉnh sửa cuối:
Cái này dùng code sẽ giải quyết được, nhưng công thức của bạn ở cột L sẽ mất hết, bạn chịu thì tôi code cho. Mà nếu chịu thì nói luôn những ô có dữ liệu thế này 11-12/1/2015 thì tính ra sao?
Những ô dạng 11-12/1/2015 thì tạm bỏ qua (vì số liệu rất ít ah), rất mong bác cho em Code để em xử lý ah.
 
Những ô dạng 11-12/1/2015 thì tạm bỏ qua (vì số liệu rất ít ah), rất mong bác cho em Code để em xử lý ah.
Dùng thử code này xem sao.
Mã:
Sub GPE()
'On Error Resume Next
Dim Rng As Range, sCell As Range, s As String, sDate
    With Sheet1
        Set Rng = .Range("L1:L" & Range("L1000000").End(xlUp).Row)
        For Each sCell In Rng
            If Not sCell.HasFormula Then
                s = sCell.Text
                If s <> "" Then
                    sDate = Split(s, "/")
                    If IsNumeric(sDate(0)) And IsNumeric(sDate(1)) And IsNumeric(sDate(2)) Then sCell.Value = DateSerial(sDate(2), sDate(1), sDate(0))
                End If
            End If
        Next sCell
    End With
    Rng.NumberFormat = "DD/MM/YYYY"
End Sub
 
Dùng thử code này xem sao.
Mã:
Sub GPE()
'On Error Resume Next
Dim Rng As Range, sCell As Range, s As String, sDate
    With Sheet1
        Set Rng = .Range("L1:L" & Range("L1000000").End(xlUp).Row)
        For Each sCell In Rng
            If Not sCell.HasFormula Then
                s = sCell.Text
                If s <> "" Then
                    sDate = Split(s, "/")
                    If IsNumeric(sDate(0)) And IsNumeric(sDate(1)) And IsNumeric(sDate(2)) Then sCell.Value = DateSerial(sDate(2), sDate(1), sDate(0))
                End If
            End If
        Next sCell
    End With
    Rng.NumberFormat = "DD/MM/YYYY"
End Sub
Cảm ơn bác rất nhiều, code hữu ích lắm ah.

Em xin phép nhờ thêm bác giúp em cột J để sao cho khi chuyển từ định dạng Custom về định dạng General, nó vẫn hiện ra như cũ ah
(Trong file em đính kèm, em muốn ô J1 sau khi chạy Code sau nó vẫn hiện là 3/NTNB-NTT chứ không phải là số 3 ah).
Rất mong bác giúp đỡ em.
 

File đính kèm

Cảm ơn bác rất nhiều, code hữu ích lắm ah.

Em xin phép nhờ thêm bác giúp em cột J để sao cho khi chuyển từ định dạng Custom về định dạng General, nó vẫn hiện ra như cũ ah
(Trong file em đính kèm, em muốn ô J1 sau khi chạy Code sau nó vẫn hiện là 3/NTNB-NTT chứ không phải là số 3 ah).
Rất mong bác giúp đỡ em.
Bạn mô tả rõ và chi tiết hơn.
 
Web KT

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

Back
Top Bottom