Chuyển định dạng ngày tháng bằng dấu "." Qua dấu "/" bằng ngôn ngữ vba

Liên hệ QC

tdnhandno

Thành viên mới
Tham gia
10/3/16
Bài viết
47
Được thích
1
Phần mềm công ty e khi xuất ra ngày tháng là dấu "." Ví dụ: 01.01.2019
E muốn chuyển dấu "." Qua "/" ví dụ: 01/01/2019
Mong mọi người giúp đỡ ạ
 

File đính kèm

  • chuyen do ngay thang.xlsx
    9.3 KB · Đọc: 14
Bạn đừng cứng nhắc chuyện dấu "/". Mục đích là chuyển về ngày tháng, bất luận nó dùng dấu gì.
Chọn cột A -> thẻ Data -> Text to columns -> Next -> Next -> chọn option Date -> bên cạnh chọn DMY -> Finish
 
Upvote 0
Phần mềm công ty e khi xuất ra ngày tháng là dấu "." Ví dụ: 01.01.2019
E muốn chuyển dấu "." Qua "/" ví dụ: 01/01/2019
Mong mọi người giúp đỡ ạ
Bạn thử:
PHP:
Sub test()
    Dim Rng As Range, Cll As Range
    Set Rng = Range("A1:A" & Range("A" & Rows.Count).End(xlUp).Row)
    Rng.Select
    For Each Cll In Rng
        Cll = WorksheetFunction.Substitute(Cll.Value, ".", "/")
    Next Cll
End Sub
 
Upvote 0
Phần mềm công ty e khi xuất ra ngày tháng là dấu "." Ví dụ: 01.01.2019
E muốn chuyển dấu "." Qua "/" ví dụ: 01/01/2019
Mong mọi người giúp đỡ ạ
Người sử dụng Phần mềm của công ty nhập liệu lung tung quá, lúc thì ngày trước, lúc thì tháng trước, cách tốt nhất là sử dụng VBA:
Do bạn đưa dữ liệu không đúng với vị trí cột do phần mềm xuất ra, nên tôi xử lý ở cột B (trừ hao cột TT). Bạn Copy dữ liệu và Paste vào B4 trở xuống rồi nhấn nút.
 

File đính kèm

  • Chuyen doi ngay.xlsm
    24.2 KB · Đọc: 7
Upvote 0
Phần mềm công ty e khi xuất ra ngày tháng là dấu "." Ví dụ: 01.01.2019
E muốn chuyển dấu "." Qua "/" ví dụ: 01/01/2019
Mong mọi người giúp đỡ ạ
Nếu dùng VBA bạn có thể record macro sẽ được đoạn sau
Mã:
Sub Chuyen()
    Columns("A:A").Select
    Selection.TextToColumns Destination:=Range("A1"), DataType:=xlFixedWidth, _
        FieldInfo:=Array(0, 4), TrailingMinusNumbers:=True
End Sub
 

File đính kèm

  • chuyen do ngay thang (2).xlsm
    16 KB · Đọc: 3
Upvote 0
Thử vậy xem:
Mã:
Function Test(Cel As Range) As Date
    Test = CDate(Replace(Cel.Value, ".", "/"))
End Function
Công thức B1: =Test(A1), định dạng lại ngày tháng.
 
Upvote 0
Bạn đừng cứng nhắc chuyện dấu "/". Mục đích là chuyển về ngày tháng, bất luận nó dùng dấu gì.
Chọn cột A -> thẻ Data -> Text to columns -> Next -> Next -> chọn option Date -> bên cạnh chọn DMY -> Finish
Ko phải bạn à. Mình muốn chuyển qua "/" để đối chiều với số liệu theo dõi. Như vậy mới chạy được. Vì số liệu theo dõi chạy "/"
 
Upvote 0
Phương án của tui, dùng công thức: B1 =Substitute(A1, ".", "/")
1 rừng phương án rồi đó, chọn 1 cái đi, cái nào cũng được, hì hì.
 
Upvote 0
Ko phải bạn à. Mình muốn chuyển qua "/" để đối chiều với số liệu theo dõi. Như vậy mới chạy được. Vì số liệu theo dõi chạy "/"
Dữ liệu là ngày tháng thì phải chuyển về ngày tháng. Dữ liệu phải chuẩn. Ngược lại thì chữa cháy dài dài, vd. ở chỗ khác nó lại là ngày tháng thì so sánh bằng niềm tin? Tương lai cần tính toán thì làm sao tính được?

Dữ liệu gốc và mọi dữ liệu khác cần tính toán, so sánh, phải ở dạng ngày tháng, nếu cần thì phải đưa về ngày tháng. Kiểu làm như bạn không chỉ sửa dài dài những lúc khác mà còn là kiểu làm việc "một mình tôi một hòn đảo, một túp lều.

Khi bạn có đối tác là tôi thì chuyển sang 01.03.2019, 2019.03.01, 01/03/2019, 2019/03/01, 01-03-2019 thì chúng đều là text cả. Vì thiết lập của Ba Lan là 2019-03-01. Tôi, đối tác của bạn sẽ bó tay.

Bạn làm như tôi (Text to columns) sẽ có ngày tháng, vd. 01/01/2019. Bạn gửi cho tôi tập tin và tôi cũng làm y hệt thì tôi cũng có ngày tháng nhưng là 2019-01-01.
Bạn mở tập tin trên máy mình và nhìn thấy 01/01/2019. Bạn gửi tập tin cho đối tác, đối tác mở và nhìn thấy 2019-01-01. Vì chỗ đó là ngày tháng thực sự nên Excel hiển thị trên mỗi máy đúng theo thiết lập trong Control Panel. Thế chẳng tuyệt vời sao?

Nhưng kiểu làm việc cháy tới đâu chữa tới đó là quyền của mỗi người.
 
Lần chỉnh sửa cuối:
Upvote 0
Web KT
Back
Top Bottom