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:
- Nhờ giúp code so sánh giá trị.
- Tài liệu Macro
- Gộp và tách dữ liệu thành nhiều sheet
- Hàm chuyển số sang chữ trong excel
- Tạo dòng cộng cuối trang sổ nhật ký chung bằng Excel
- Post bài excel
- Các ví dụ về Form, Combo box, list box ...rất hay
- Hộp thoại dialog open file
- Phần mềm Quản lý kho hàng HTL Warehouse v2.0 (free 1 year)
- Nhờ các bạn viết giúp code tạo nút NHẬP
-
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)
Epson - một trong những tập đoàn công nghệ hàng đầu thế giới, đã khẳng định vị thế tiên phong của mình trong lĩnh vực máy chiếu. Với bề dày lịch sử và sự đổi mới không ngừng, Epson không chỉ mang đến...
Lịch sử hình thành và phát triển của thương hiệu máy chiếu Epson