[Giúp] tạo Macro chỉnh sửa ngày (1 người xem)

Liên hệ QC

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

nguyetnga1992

Thành viên mới
Tham gia
14/4/17
Bài viết
28
Được thích
1
Chào anh/Chị cộng đồng mạng giaiphapexcel!

Em làm phiền nhờ anh/chị viết giúp em một cái macro chỉnh sửa ngày ạ..!

em có một file data, ngày và tháng bị đảo lộn với nhau thay vì ngày 28/02/2017 nhưng thường thì data của em lại xuất ở dạng 02/28/2017
Hiện tại em chỉ dùng hàm để điều chỉnh ngày tháng, nhưng cách này lại tốn thời gian và em thường hay bị quên nên công việc em thường bị chắc trở..

Mong anh chị giúp đỡ ạ.!

Cảm ơn anh chị nhiều.
 

File đính kèm

Muốn VBA thì bạn phải đính kèm File với tiêu đề đầy đủ mới áp dụng vào File thực tế của bạn được, còn tiêu đề như bài 1 thì phá sản.
 
Upvote 0
Bạn [NguyetNga1992] này đường ngay lối phải không đi; Lại thích chông gai, rậm & phức tạp!

Với dữ liệu kiểu Ngay-tháng-năm ta nên nhập dạng như bạn đang có ("MM/DD/yyyy")
Sau đó chỉ cần định dạng lại giống như bạn đã quen mắt ("dd/mm/yyyy")

Số liệu như vậy sẽ trường tồn với bạn theo thời gian 1 cách suông sẻ;

Ngược lại, nếu chìu theo í bạn, sẽ phải cần chuyển đổi lại lần nữa để tính toán được, như:

Cần tính hiệu giữa 2 ngày phát sinh (như tính số ngày đi phép, trừ ngày lễ, chủ nhật, thứ bảy, . . . . )

Nước ta đang trên con đường hòa nhập với thế giới rồi bạn à & ta đang xài sản phẩm trí tuệ của bọn Mẽo; không phải của bọn Pháp!
 
Upvote 0
Chào anh/Chị cộng đồng mạng giaiphapexcel!

Em làm phiền nhờ anh/chị viết giúp em một cái macro chỉnh sửa ngày ạ..!

em có một file data, ngày và tháng bị đảo lộn với nhau thay vì ngày 28/02/2017 nhưng thường thì data của em lại xuất ở dạng 02/28/2017
Hiện tại em chỉ dùng hàm để điều chỉnh ngày tháng, nhưng cách này lại tốn thời gian và em thường hay bị quên nên công việc em thường bị chắc trở..

Mong anh chị giúp đỡ ạ.!

Cảm ơn anh chị nhiều.

Đoán công thức tại B2 là:
Mã:
=IF(ISNUMBER(A2),DATE(YEAR(A2),DAY(A2),MONTH(A2)),DATE(RIGHT(A2,4),LEFT(A2,2),MID(A2,4,2)))
Hoặc:
Mã:
=IF(ISNUMBER(A2),A2,DATE(RIGHT(A2,4),LEFT(A2,2),MID(A2,4,2)))
Một trong hai công thức trên có thể có một cái đúng
 
Upvote 0
Đoán công thức tại B2 là:
Mã:
=IF(ISNUMBER(A2),DATE(YEAR(A2),DAY(A2),MONTH(A2)),DATE(RIGHT(A2,4),LEFT(A2,2),MID(A2,4,2)))
Hoặc:
Mã:
=IF(ISNUMBER(A2),A2,DATE(RIGHT(A2,4),LEFT(A2,2),MID(A2,4,2)))
Một trong hai công thức trên có thể có một cái đúng

Chào Thầy ạ!
Ý em không phải là dùng công thức nhưng em muốn xin Code VBA và cách chỉnh sửa ngày tháng...
Vì trong data của em thường dữ liệu cột ngày xuất thôi dạy MM/DD/YY (04/15/2017) em muốn chuyển thành 15/04/2017 không dùng hàm nhưng dùng bằng code cho nhanh ạ...
Mong thầy giúp đỡ
 
Upvote 0
Bạn [NguyetNga1992] này đường ngay lối phải không đi; Lại thích chông gai, rậm & phức tạp!

Với dữ liệu kiểu Ngay-tháng-năm ta nên nhập dạng như bạn đang có ("MM/DD/yyyy")
Sau đó chỉ cần định dạng lại giống như bạn đã quen mắt ("dd/mm/yyyy")

Số liệu như vậy sẽ trường tồn với bạn theo thời gian 1 cách suông sẻ;

Ngược lại, nếu chìu theo í bạn, sẽ phải cần chuyển đổi lại lần nữa để tính toán được, như:

Cần tính hiệu giữa 2 ngày phát sinh (như tính số ngày đi phép, trừ ngày lễ, chủ nhật, thứ bảy, . . . . )

Nước ta đang trên con đường hòa nhập với thế giới rồi bạn à & ta đang xài sản phẩm trí tuệ của bọn Mẽo; không phải của bọn Pháp!

Cảm ơn anh đã nhắc nhỡ,

Em chỉ muốn làm cho công việc của mình nhanh hơn và đỡ sai sót hơn thôi..
 
Upvote 0
Chào Thầy ạ!
Ý em không phải là dùng công thức nhưng em muốn xin Code VBA và cách chỉnh sửa ngày tháng...
Vì trong data của em thường dữ liệu cột ngày xuất thôi dạy MM/DD/YY (04/15/2017) em muốn chuyển thành 15/04/2017 không dùng hàm nhưng dùng bằng code cho nhanh ạ...
Mong thầy giúp đỡ
Bạn để ý câu cuối ở bài #4:
Một trong hai công thức trên có thể có một cái đúng

Bạn chưa hình dung còn nhiều vấn đề: Dữ liệu có cả mm/dd/yy và dd/mm/yy thì sao? Máy tính thiết lập format date trùng hoặc khác với kiểu bạn muốn thì sao?
 
Upvote 0
Vừa thấy còn online giờ thì offline, bạn này lười rồi đây!
Public Sub ChangeFormat_Date_1()
Dim LastRow As Long
Dim lastColumn As Integer

LastRow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
lastColumn = Sheet1.Cells(1, Columns.Count).End(xlToLeft).Column


Dim i As Integer
For i = 2 To LastRow
ActiveSheet.Range("B" & i) = ChangeDateFormat(ActiveSheet.Range("A" & i))​
Next i​
End Sub


Public Function ChangeDateFormat(inputString As String) As String
Dim firstDate As Date
Dim secondDate As Date
Dim trimmedInput As String
trimmedInput = Trim$(inputString)
firstDate = DateValue(Left$(trimmedInput, 10))
secondDate = DateValue(Right$(trimmedInput, 10))

ChangeDateFormat = Format(firstDate, "dd\/MM\/yyyy")​
End Function
 
Upvote 0
Vừa thấy còn online giờ thì offline, bạn này lười rồi đây!
Public Sub ChangeFormat_Date_1()
Dim LastRow As Long
Dim lastColumn As Integer

LastRow = Sheet1.Range("A" & Rows.Count).End(xlUp).Row
lastColumn = Sheet1.Cells(1, Columns.Count).End(xlToLeft).Column


Dim i As Integer
For i = 2 To LastRow
ActiveSheet.Range("B" & i) = ChangeDateFormat(ActiveSheet.Range("A" & i))​
Next i​
End Sub


Public Function ChangeDateFormat(inputString As String) As String
Dim firstDate As Date
Dim secondDate As Date
Dim trimmedInput As String
trimmedInput = Trim$(inputString)
firstDate = DateValue(Left$(trimmedInput, 10))
secondDate = DateValue(Right$(trimmedInput, 10))

ChangeDateFormat = Format(firstDate, "dd\/MM\/yyyy")​
End Function

HiHi, do Mẹ kêu ngủ sớm ạ!

Em cảm ơn các Thầy đã giúp em nhé, nhờ các Thầy em đã làm được rồi ạ..

Chúc các Thầy sức khoẻ và thành công..
 
Upvote 0
chính trong Time máy tính . sửa lại thành dd/mm/yyyy là được mà bạn
 
Upvote 0
Web KT

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

Back
Top Bottom