Chủ đề: Macro định dạng ngày tháng năm
-
09-02-2012, 04:18 PM #1Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Macro định dạng ngày tháng năm
Để chào mừng lễ 2/9/2012 tôi nêu lên 1 Macro đơn giản mà hiệu quả trong công việc.
Trong nhập liệu, nhất là gom nhiều File vào 1 (do nhiều người nhập liệu) nhiều khi định dạng ngày tháng không đúng hoặc ngược (năm tháng ngày) dẫn đến tổng hợp số liệu có thể bị sai lệch.
Để định dạng lại ngày tháng cho đúng các bạn sử dụng macro sau trong module để dùng chung cho tất cả các sheet (nhấn Alt+F11 > Insert > module, cửa sổ Code hiện ra) Copy và dán đoạn code sau vào module.
Mã:Sub NgayThang() ' Macro2 Macro 2/9/2012 by be09 'Định dạng ngày tháng năm Selection.NumberFormat = "mm/dd/yyyy" End Sub '''''''''''''''''''''''''''''''''' Sub ThangNgay() ' Macro1 Macro 2/9/2012 by be09 'Định dạng tháng ngày năm Selection.NumberFormat = "dd/mm/yyyy" End Sub
Vào Tools >Macro >Macro chọn NgayThang (sẽ định dạng ngày, tháng, năm).
Chọn ThangNgay (sẽ định dạng tháng, ngày, năm).
Chúc các bạn thực hiện tốt trong công việc.View more random threads:
- Tự động tăng số row
- Cách chuyển dữ liệu từ máy chấm công sang bảng chấm công có sẵn.
- Macro gộp nhiều File vào 1 File
- Hàm tách Email trong chuỗi
- PIVOT TABLE Bảng tổng hợp 3 chiều
- Theo dõi khám chữa bệnh
- XIN các bạn giúp đỡ form nhập sau
- cách dùng hàm Table
- Giúp File Excell Này Với
- Ai biết làm ơn chỉ giúp mình làm phiếu thu chi trên excel với
-
09-02-2012, 05:48 PM #2Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Ðề: Macro định dạng ngày tháng năm
Theo tôi , nếu ta kết hợp các hàm Text và Value trong một bộ dữ liệu cụ thể sẽ hiệu quả hơn trong việc điều chỉnh định dạng cho kiểu dữ liệu ngày tháng.
-
09-02-2012, 06:46 PM #3Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Macro định dạng ngày tháng năm
Gửi bởi pqhung091965
-
09-02-2012, 08:20 PM #4Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Ðề: Macro định dạng ngày tháng năm
Gửi bởi be09
-
09-03-2012, 01:01 AM #5Junior Member
- Ngày tham gia
- Nov 2015
- Bài viết
- 0
Ðề: Trước tiên cần biến về 1 kiểu dữ liệu ngày tháng qui chuẩn
Do nhiều người nhập liệu 1 cách tùy tiện, nên dữ liệu nhiều chổ trên cột được excel hiểu là kiểu chuỗi (String) & còn lại là kiểu dữ liệu ngày tháng theo dạng "mm/dd/yyyy" (máy của mình đang như vậy)
Điều này sẽ thấy rõ, một khi tại cột [G] ta thiết lập công thức (tại [G5] ) =MONTH(B5)
Nếu ta dùng FillDown fát triển công thức trong toàn cột ta sẽ thấy lỗi ở rất nhiều ô;
Sau đây là cách mình khác fục chuyện này như sau:
Bước 1: Lập hàm tự tạo biến 1 chuỗi ngày tháng (như "12/3/2012") thành 03/12/2012 (Dạng ngày tháng kiểu của bọn Mẽo)
Hàm tự tạo này có nội dung sau:
Mã nguồn PHP:[COLOR=#000000]
Option Explicit [/COLOR][COLOR=#007700]Function [/COLOR][COLOR=#0000BB]StringToDate[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]StrC [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]String[/COLOR][COLOR=#007700]) As [/COLOR][COLOR=#0000BB]Date [/COLOR][COLOR=#007700]Const [/COLOR][COLOR=#0000BB]PC [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]String [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]"/" [/COLOR][COLOR=#0000BB]Dim VT1 [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Byte[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]VT2 [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Byte VT1 [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]InStr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]StrC[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]PC[/COLOR][COLOR=#007700]) If [/COLOR][COLOR=#0000BB]VT1 Then VT2 [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]InStr[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]VT1 [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]StrC[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]PC[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]StringToDate [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]_ DateSerial[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]CInt[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Right[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]StrC[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]4[/COLOR][COLOR=#007700])), [/COLOR][COLOR=#0000BB]CInt[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Mid[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]StrC[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]VT1 [/COLOR][COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]VT2 [/COLOR][COLOR=#007700]- [/COLOR][COLOR=#0000BB]VT1 [/COLOR][COLOR=#007700]- [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700])), [/COLOR][COLOR=#0000BB]CInt[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Left[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]StrC[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]VT1 [/COLOR][COLOR=#007700]- [/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]))) [/COLOR][COLOR=#0000BB]End [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]End [/COLOR][COLOR=#007700]Function [/COLOR]
=IF(TYPE(MONTH(B5))=16,StringToDate(B5),B5)
Sau đó cũng dùng FillDown ta chép xuống cuối cột để toàn bộ cột này có ngày tháng theo chuẩn;
(Cần thiết thì ta dịnh dạng cột này cho dễ nhìn theo kiểu Custom "dd/mm/yyyy" theo hệ Fáp)
Hi vọng mình không fải làm cụ thể trong file!:danghi:
-
09-03-2012, 02:19 AM #6Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 4
Ðề: Macro định dạng ngày tháng năm
Gửi bởi pqhung091965
Ở kiểu chuỗi (String): sẽ có dấu tam giác màu xanh bên trái phía trên Cell, bạn cover nó bằng cách click vào Cell đó giữ phím xong kéo thanh cuộn xuống và chọn cell cuối cùng, rê chuột vào khung hình vuông có dấu chấm than màu đen nó sẽ hiện ra tam giác màu đen, click vào nó và chọn Conver to number thì tất cả các Cell kiểu chuỗi (String) sẽ chuyển sang kiểu số (Number).
Đối với trường hợp nhập ngược tháng, ngày bạn dùng phương pháp sort tất cả các Cell nhập ngược nó sẽ chuyển lên trên cùng lúc này bạn chỉ cần chọn vùng bị nhập ngược và chọn Macro ThangNgay nó sẽ trả kết quả về cho bạn.
Cách khác không cần sort: Bạn copy vùng nhập ngày tháng vào Edit > Paste Special > value để trả kiểu chuỗi (String) về kiểu Number và chọn Macro ThangNgay nó sẽ trả kết quả về ngày tháng năm cho bạn.
Nói chung có nhiều cách để thực hiện việc sửa lỗi khi có nhiều người nhập chưa đúng định dạng, việc còn lại là ta sửa cách nào cho nhanh chóng.
Ở đây tôi chỉ đưa ra giải pháp, còn vận dụng nó để áp dụng vào công việc như thế nào là tùy người sử dụng.
-
09-03-2012, 03:42 AM #7Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Macro định dạng ngày tháng năm
Bạn TQChanh chắc còn nhớ lần tôi nói về cách nhập dữ liệu của nhiều người chứ nhỉ và với cách sử dụng Excel như thế thì đối với các bạn ấy việc sử dụng các hàm có sẵn đã là vấn đề rồi huống gì nói đến việc sử dụng VBA .
Chúng ta dù gì cũng có một kiến thức nhất định về Excel và đều biết sử dụng VBA để phục vụ công việc của mình , tuy nhiên VBA vẫn là cái gì đó tương đối khó tiếp cận với hầu hết kế toán chúng ta . Chính do đó , theo tôi, để mang tính đại chúng ta nên tính đến phương án tiếp cận sao cho dễ sử dụng, ít xảy ra sai sót, và hỗ trợ được nhiều người nhất .
-
09-03-2012, 04:05 AM #8Junior Member
- Ngày tham gia
- Aug 2015
- Bài viết
- 0
Ðề: Macro định dạng ngày tháng năm
Gửi bởi pqhung091965
=RIGHT(TEXT(C5,"dd/mm/yyyy"),10)
Dự án căn hộ cao cấp Eaton Park được phát triển bởi Gamuda Land độc đáo bền vững tầm nhìn rộng bài trí hài hòa. Eaton Park độc đáo bền vững giá ưu đãi phú hợp văn hóa. Dự án khẳng định thương hiệu,...
Eaton Park tiện ích hạng sang vị trí đẹp