Định dạng lại ngày theo kiểu ddmmyyyy

  • Thread starter agribankdienbien
  • Ngày gửi

4541 lượt xem

A

agribankdienbien

Sơ cấp
9/6/09
3
0
0
TP Điện Biên
Mình có 1 file excel xuất ra từ chương trình kế toán của cơ quan có dạng là yyyymmdd. VD ngày là 12/11/2009 thì nó lại **** thị là 20091112
Mình muốn tạo một Macro để khi bôi đen vào những cột đó thì nó sẽ tự động chuyển về đúng dạng cho mình như kiểu là 12/11/2009, chứ mình không muốn tạo ra 1 cột phụ rồi đặt công thức. Mong các bạn giúp mình với
 
S

SA_DQ

Thành viên thân thiết
29/6/05
446
41
28
62
HCM city
Bạn dùng thử & cho í kiến nha

Mình có 1 file excel xuất ra từ chương trình kế toán có dạng là yyyymmdd. VD ngày là 12/11/2009 thì nó hiễn thị là 20091112
Mình muốn tạo một Macro để khi bôi đen vào những cột đó thì nó sẽ tự động chuyển về đúng dạng cho mình như kiểu là 12/11/2009, chứ mình không muốn tạo ra 1 cột phụ rồi đặt công thức. Mong các bạn giúp mình với
Mã:
Option Explicit
[B]Sub DoiNgay()[/B]
 Dim Clls As Range
 Dim Nam As Integer, Thang As Byte, Ngay As Byte, GPE As Long
 For Each Clls In Selection
   GPE = Clls.Value
   If IsNumeric(GPE) Then
      Nam = Clls.Value \ 10 ^ 4
      Thang = (GPE \ 100) Mod 100
      Ngay = GPE Mod 100
[COLOR="Blue"]'      MsgBox "N: " & Nam, , Thang & " " & Ngay '[/COLOR]
      Clls.Value = Format(DateSerial(Nam, Thang, Ngay), "dd/MM/yyyy")
   End If
 Next Clls
[B]End Sub[/B]
 
A

agribankdienbien

Sơ cấp
9/6/09
3
0
0
TP Điện Biên
Mã:
Option Explicit
[B]Sub DoiNgay()[/B]
 Dim Clls As Range
 Dim Nam As Integer, Thang As Byte, Ngay As Byte, GPE As Long
 For Each Clls In Selection
   GPE = Clls.Value
   If IsNumeric(GPE) Then
      Nam = Clls.Value \ 10 ^ 4
      Thang = (GPE \ 100) Mod 100
      Ngay = GPE Mod 100
[COLOR="Blue"]'      MsgBox "N: " & Nam, , Thang & " " & Ngay '[/COLOR]
      Clls.Value = Format(DateSerial(Nam, Thang, Ngay), "dd/MM/yyyy")
   End If
 Next Clls
[B]End Sub[/B]
Thank SA_DQ đã giúp mình nhưng vẫn chưa được ổn lắm. nếu như 2 số cuối nhỏ hơn 12 thì nó sẽ không hiểu đó là ngày, mà nó sẽ covert sang là kiểu tháng bạn thử xem giúp mình với. Cảm ơn bạn nhiều
 
A

anh phuong

Sơ cấp
15/5/07
60
2
8
Mien Tay
Chưa rõ bạn định dạng ngày kiểu nào; Hay bạn thử phương án này xem sao:

Clls.Value = DateSerial(Nam, Thang, Ngay)
Hình như cái GPE = Clls.Value ấy nó định dạng là Text bác ạ vì đây là dữ liệu được xuất từ chương trình khác ra Excel.
Không biết có đúng không nữa
 

Thành viên trực tuyến

  • prokhong5
  • aduy1992

Xem nhiều