Đôi khi khi làm việc trong Excel, bạn có thể cần phải có nhiều hơn một workbook mở trên màn hình của bạn để làm cho nó dễ dàng sử dụng hơn hay xem dữ liệu từ nhiều bảng tính.. Trong bài [r]
(1)Những "tuyệt chiêu" Excel Lời nói đầu: Trong quá trình thực bảng tính, chúng ta có thể mắc phải vô số lỗi, có thể mắc phải sai lầm ngớ ngẩn, và thường không để ý tới cái có thể giúp chúng ta xử lý bảng tính nhanh hơn, gọn gàng Xin hân hạnh giới thiệu đến các bạn sách "Một ngày tuyệt chiêu", lược dịch từ Excel Hacks, hai tác giả David và Raina Hawley Những "tuyệt chiêu" này giúp bạn tránh lỗi, và làm việc với bảng tính cách có hiệu Trước nói đến các "tuyệt chiêu" Excel, xin nói sơ qua chút số thủ thuật và quy tắc bản, điều giúp các bạn thực "tuyệt chiêu" nói đến các phần sau cách dễ dàng Excel là phần mềm bảng tính mạnh, và bạn có thể làm điều không thể tin với nó Nhưng không may, có nhiều người thiết kế bảng tính mình với quá nhiều "lo xa", cẩn thận quá mức cần thiết, và làm cho nó trở nên phức tạp là nó đáng bị Phần mở đầu này mách cho bạn số thủ thuật và quy tắc mà bạn làm theo, bạn thấy chúng hiệu Xin nói thêm, tất các "chiêu" trình bày sau đây, đa phần là viết cho Excel 2007 Nếu nó có thể áp dụng cho các phiên trước, chúng tôi chú thích bên cạnh: (Với Excel 2003 trở trước, thì ) Quy tắc 80/20 Có lẽ việc quan trọng thực bảng tính là dành thời gian để nghiên cứu, xem xét cách bố trí liệu, tính trước việc mình cần làm Và đừng nghĩ sau hoàn thành, tôi không cần phải thêm vào đó các liệu các công thức khác, vì bạn luôn làm ngược lại Điều này có nghĩa rằng, bạn nên dành khoảng 80% thời gian để lên kế hoạch cho bảng tính và khoảng 20% thời gian để thực bảng tính đó Cho dù rằng, việc này có vẻ không cần thiết với bảng tính nhỏ, bảo đảm rằng, bạn quan tâm đến điều tôi vừa nói trên, thì lâu dài, bạn tránh cực nhọc phải phải sửa sửa lại bảng tính mình, và dễ dàng thực bảng tính lớn sau đã dành cho nó thời gian để lên kế hoạch thực Nên nhớ rằng, các bảng tính phải luôn mang lại cho người dùng thông tin chính xác, không phải là thông tin chính xác trường hợp nào đó Những mẹo nhỏ cấu trúc bảng tính Một lỗi mà chúng ta hay mắc phải tạo bảng tính, là chúng ta không thiết lập và trình bày liệu "theo cái cách mà Excel và các tính nó mong đợi" Sau đây là số lỗi phổ biến chúng ta hay mắc phải thiết lập bảng tính: o o o o o Bố trí liệu nhiều bảng tính (WorkBook) khác Bố trí liệu nhiều trang tính (WorkSheet) khác Bố trí liệu nhiều bảng (Table) khác Có hàng trống và cột trống khối liệu (database) Bỏ trống ô có liệu giống (cùng chung ngày, cùng chung đơn vị tính, v.v ) Ba điểm đầu tiên trên đây muốn nói đến điều: Bạn nên luôn luôn cố gắng để giữ các mối liên quan các liệu liên tục cùng bảng liệu Tôi đã thấy nhiều các bảng tính không trình bày theo cái quy tắc đơn giản này, và chính vì vậy, các bảng tính đó không thể tận dụng tối đa các tính mạnh mẽ Excel PivotTable, SubTotal Bạn có thể sử dụng các tính này bạn gom hết liệu bạn vào bảng thật đơn giản Không phải ngẫu nhiên mà Excel có 1.048.567 hàng (65.536 hàng Excel 2003 trở trước) mà lại có 16.384 cột (256 cột Excel 2003 trở trước) Điều này có ý nói rằng, bạn nên thiết lập liệu mình với các tiêu đề cột nằm hàng trên cùng, và các liệu có liên quan thì nằm liên tục bên tiêu đề nó (2) Nếu bạn có liệu lặp lại hai lần nhiều lần các hàng cùng cột (các ngày tháng, các loại đơn vị tính chẳng hạn), bạn hãy chống lại cám dỗ bỏ trống các ô đó Hãy cố gắng xếp (sort) liệu bạn nào có thể Excel có nhiều công cụ để tìm kiếm và tham chiếu công thức, và số không nhỏ đó, đòi hỏi liệu phải xếp theo thứ tự hợp lý Việc phân loại giúp ích đáng kể cho tốc độ xử lý số các hàm Những mẹo nhỏ định dạng Ngoài việc thiết kế cấu trúc bảng tính cho hợp lý, việc định dạng cho nó là vấn đề cần bàn đến Mặc dù bảng tính nên định dạng cho dễ đọc và dễ theo dõi, chúng ta ít nghĩ đến việc sử dụng thời gian cho có hiệu Hãy luôn luôn định dạng thật đơn giản Rất nhiều người lãng phí thời gian vào việc định dạng bảng tính mặc dù không thiết phải làm vậy, và chính điều này làm ảnh hưởng đến hiệu công việc Việc thường xuyên áp dụng định dạng phức tạp cho bảng tính còn làm cho nó tăng kích thước, và cho dù bảng tính bạn có thể trông giống tác phẩm nghệ thuật, nó lại có thể là nỗi sợ hãi cho người khác Một kiểu phối màu tốt mà bạn nên áp dụng cho bảng tính, là màu đen, màu trắng và màu xám Một gợi ý nữa, là nên bỏ trống vài hàng đầu tiên trên cùng (ít là hàng) Những hàng này dùng cho tính nâng cao sau, chẳng hạn Advanced Filter, dùng làm vùng điều kiện cho các công thức xử lý liệu (DSUM, DMAX, v.v ) Cũng đừng quan tâm đến việc canh lề cho liệu Theo mặc định, Excel canh phải cho liệu kiểu số, và canh trái cho liệu kiểu text Và đó là điều tốt rồi, đừng thay đổi nó Nếu bạn thay đổi kiểu canh lề, bạn có thể không xác định tức khắc đó là liệu kiểu số hay liệu kiểu text; và nó còn có thể gây nhầm lẫn cho người khác tham chiếu đến ô, vì nhiều họ tưởng liệu ô đó là số, thật nó là text Nếu bạn thay đổi kiểu canh lề mặc định, bạn bị nhức đầu với nó sau này Chỉ có tiêu đề bảng tính là hưởng ngoại lệ mà thôi Chỉ định dạng các ô theo kiểu text thật cần thiết Bởi vì tất liệu nhập vào các ô đã định dạng trước theo kiểu text bị chuyển thành liệu kiểu text, bạn nghĩ cái bạn nhập vào là liệu kiểu số hay liệu kiểu ngày tháng Và tồi tệ nữa, ô nào chứa công thức tham chiếu đến ô đã định dạng theo kiểu text, bị định dạng thành kiểu text Nói chung, bạn đâu có muốn ô chứa công thức lại bị định dạng theo kiểu text, phải không Trộn các ô (merge cells) là vấn đề Có số công thức macro không thể chạy với ô đã trộn Cho nên, thay vì trộn ô, bạn hãy dùng chức "Center across selection", nằm Home ➝ nhóm Alignment Nhấn vào cái mũi tên cùng bên phải, mở hộp thoạiFormat với tab Alignment chọn sẵn Bạn sử dụng trượt dọc khung Horizontal để chọnCenter Across Selection Hoặc bạn có thể right-click chọn Format Cells từ shortcut menu Với Excel 2003 trở trước, bạn mở hộp thoại này từ menu Format ➝ Cells (Ctrl+1) (3) Nên sử dụng Center Across Selection thay cho Merge Cells Những mẹo nhỏ dùng công thức Một sai lầm lớn sử dụng công thức là cho nó tham chiếu đến toàn các cột mảng liệu Điều này làm cho Excel phải kiểm tra hàng ngàn ô, không nói là hàng triệu, để chắn không bỏ sót liệu nào Ví dụ, giả sử bạn có mảng liệu từ A1 đến H1000, và bạn định dùng hàm tìm kiếm Excel để trích liệu cần thiết Bởi vì bạn còn phải bổ sung thêm liệu vào mảng này, nên để ăn, bạn tạo tham chiếu công thức đến toàn các hàng các cột mảng này Khi đó, tham chiếu bạn có thể là A:H, cụ thể hơn, là A1:H65536 Bạn nghĩ làm thì bạn không lo lắng gì thêm liệu vào mảng Đó là thói quen vô cùng tai hại mà bạn phải luôn tránh xa nó Bởi nó làm cho bảng tính trở nên ì ạch, chí là không chạy Bạn có thể loại bỏ phần không cần tham chiếu khỏi công thức, mà lại bảo đảm liệu thêm vào tự động cập nhật tham chiếu công thức, cách dùng Table (List Excel 2003 trở trước) sử dụng các Name động Một vấn đề thường xảy với bảng tính lớn, mà cấu hình máy lại nhỏ, là Excel tính toán chậm liệu cập nhật Để giải vấn đề này, bạn thường khuyên là hãy chuyển đổi chế độ tính toán Excel thành dạng Manual: Nhấn vào nút Office góc trái phía trên bảng tính, chọn Excel Options ➝ Formulas (với Excel 2003 trở trước, chọn menu Tools ➝ Options ➝Calculations), chọn Manual : (4) Chọn Manual Caculation với Excel 2007 Chọn Manual Caculation với Excel 2003 Tuy nhiên, lời khuyên đó thì không hay cho lắm, mà là mang tính đối phó Một bảng tính thì có công thức tính toán, bạn chạy bảng tính chế độ tính toán Manual, có thể bạn có thông tin cũ mèm, chưa cập nhật Nếu muốn có thông tin chính xác, bạn phải nhấn F9 Nhưng, chắn là không phải lúc nào bạn nhớ điều này! Vậy bạn thử cân nhắc xem: Nếu cần thắng chân bị kẹt và làm cho xe bạn chạy chậm lại, bạn sửa lại (5) cần thắng chân, hay là gỡ bỏ cái thắng chân tin tưởng hoàn toàn vào cái thắng tay? Nghĩa là, bảng tính bạn chạy chậm, bạn sửa lại công thức cho nó chạy nhanh hơn, hay là đặt nó vào chế độ tính toán tay mà làm tiếp? Hầu chúng tôi không làm điều này, nhiều người đã không ngần ngại đặt bảng tính họ chế độ tính toán Manual Nếu bạn thấy cần phải đặt bảng tính mình chế độ tính toán Manual thì làm việc được, bạn nên suy nghĩ đến việc thiết kế lại bảng tính Công thức mảng là nguyên nhân vấn đề trên Chúng là lựa chọn tốt tham chiếu đến ô riêng lẻ Nhưng bạn dùng chúng để tham chiếu đến dãy liệu lớn, thì hãy sử dụng chúng càng ít càng tốt Khi có số lượng lớn các mảng tham chiếu đến dãy liệu lớn, hiệu suất bảng tính bị ảnh hưởng, đôi nó dừng hẳn luôn, và bạn bắt buộc phải dùng chế độ tính toán tay Excel có nhiều hàm chuyên xử lý liệu lớn thay cho công thức mảng, mà đề cập đến chiêu thứ 79: Tránh lỗi #VALUE! tính tổng (SUM) đếm (COUNT) các ô Ngoài ra, trongExcel Help có số ví dụ hay giúp bạn cách để dùng công thức trên bảng liệu lớn để trích kết dựa theo tiêu chuẩn Hoặc bạn có thể sử dụng Pivot Table, đề cập đến phần thứ loạt bài này Mặc dù PivotTable thì có vẻ phức tạp bạn sử dụng nó lần đầu tiên, chúng tôi thành thật khuyên bạn hãy học cách sử dụng nó Một bạn đã làm chủ PivotTable, ngày nào đó bạn tự hỏi làm tôi có thể sống mà không có PivotTable! Chiêu thứ 1: Tùy biến cửa sổ làm việc bảng tính Excel cho phép hiển thị đồng thời nhiều bảng tính và cho phép tùy biến cách hiển thị và xếp chúng Sau thiết lập các tùy biến, chúng ta có thể lưu thành tập tin workspace (không gian làm việc) xlw để sử dụng lại sau này Đôi khi làm việc Excel, bạn có thể cần phải có nhiều workbook mở trên màn hình bạn để làm cho nó dễ dàng sử dụng hay xem liệu từ nhiều bảng tính Trong bài này mô tả cách thực tổ chức cửa sổ làm việc cách gọn gàn và có tổ chức Đầu tiên, bạn hãy mở tất các bảng tính mà bạn cần làm việc: Vào Office | Open…, giữ phím Ctrl chọn các tập tin bảng tính cần mở | nhấn nút Open để mở các tập tin (E2003: File | Open ) (6) Từ cửa sổ làm việc bảng tính mở nào đó, chọn Windows | View | Arrange All (E2003:Window | Arrange) Nếu tùy chọn “Windows of active workbook” chọn thì hãy bỏ chọn, sau đó chọn kiểu xếp và nhấp nút OK Nếu chọn kiểu xếp Tiled (lát gạch) thì các cửa sổ làm việc bảng tính hình sau: Nếu chọn kiểu xếp Horizontal (nằm ngang) thì các bảng tính xếp chồng lên hình minh họa sau: (7) Nếu chọn kiểu Vertical (thẳng đứng) thì các bảng tính xếp nằm cạnh sau: Nếu chọn kiểu Cascade (thác nước) thì các bảng tính xếp đè lên hình minh họa sau (8) Khi các cửa sổ bảng tính đã xếp gọn gàng, bạn dễ dàng thao tác và di chuyển liệu các cửa sổ Để sử dụng lại các thiết lập này sau này, bạn có thể lưu thành tập tin workspace Các bước thực sau: Chọn ngăn View | nhóm Window chọn Save Workspace (E2003: File | Save Workspace…) | nhập tên cho workspace hộp File Name, chọn nơi lưu và nhấn nút OK Tập tin workspace có phần mở rộng là xlw Muốn chuyển đổi bảng tính nào đó chế độ toàn màn hình thì bạn cần kích chuột hai lần lên Title (tiêu đề) cửa sổ bảng tính đó Bạn có thể nhấn nút Maximize trên cửa sổ bảng tính hành để phóng to cửa sổ nhấn nút Close để đóng bảng tính sau đã hoàn tất công việc với cửa sổ đó Để sử dụng lại không gian làm việc đã thiết lập trước đó, bạn cần mở tập tin xlw vừa tạo thì giao diện làm việc bạn thiết lập trước khôi phục Tất các hiệu chỉnh hay cập nhật thông tin các bảng tính workspace Excel nhắc nhở bạn lưu lại bạn lệnh đóng workspace Nếu ngày, bạn phải thực các công việc lặp lặp lại trên nhiều bảng tính Tôi khuyên bạn nên dành ít thời gian để thiết lập các kiểu không gian làm việc cho các bảng tính đó tùy thuộc vào yêu cầu tao tác và xử lý số liệu chúng Sau đó, bạn việc mở tập tin xlw cho kiểu không gian làm việc phù hợp với nhu (9) cầu sử dụng bạn mà không cần phải tốn thời gian xếp, tổ chức các bảng tính các lần sử dụng sau Chiêu thứ 2: Nhập liệu đồng thời vào nhiều sheet Thông thường người dùng Excel có liệu muốn nhập vào nhiều sheet khác Bạn có thể dùng công cụ Group các sheet lại để có thể nhập liệu đồng thời Nhưng có cách khác nhanh chóng và linh hoạt bạn dùng vài dòng lệnh VBA Nhưng phải nói đến công cụ Group cái đã nhỉ? Công cụ Group dùng để nhập liệu vào nhiều sheet lúc có nhiều người chưa dùng đến Nó dùng để kết nối các sheets với phạm vi work book Group các sheet lại tay: Để nhóm các sheet lại, các bạn việc click chọn sheet thứ nhất, nơi bạn nhập liệu từ bàn phím vào, vừa nhấn Ctrl, vừa nhấn vào tên sheet khác mà bạn muốn nhập liệu đồng thời Khi bạn gõ cái gì vào sheet hành, liệu đó tự động nhập vào các sheet còn lại nhóm Điệp vụ hoàn tất nhanh chóng (nghe giống 007 nhỉ) Để thoát khỏi tình trạng group, bạn việc click chọn sheet khác ngoài nhóm, click chuột phải lên tên sheet nhómbất kỳ, chọn Ungroup Sheets Hoặn bạn muốn gỡ số các sheet khỏi nhóm, hãy Ctrl click vào tên sheet đó Khi hay nhiều sheet Group với nhau, trên tiêu đề Windows có chữ [Group] (tronh ngoặc vuông) Nhìn vào đó bạn có thể biết bạn còn tình trạng group các sheets Trừ bạn có cặp mắt sắc chim ưng, bén dao cạo, thường thì bạn không để ý đến dấu hiệu này, bạn quên và không ungroup công việc đã xong Chính vì tôi khuyên bạn thực xong thao tác nhập liệu hàng loạt vào các sheet, phải ungroup chúng Dù phương pháp này là dễ nhất, có nghĩa là bạn phải nhớ và nhớ group và ungoup cần, không bạn vô tình ghi đè lên liệu sheet mà bạn không nhìn thấy trên màn hình thời Thí dụ bạn muốn ghi cùng lúc liệu vào vùng nào đó các bảng tính, còn ngoài vùng đó thì liệu các sheet phải khác Thế các sheet đã group thì nó có thèm quan tâm bạn nhập liệu vùng nào đâu? Group các sheet lại cách tự động: Bạn có thể giải vấn đề trên cách dùng đoạn code VBA đơn giản Để đoạn code làm việc được, nó phải đặt các kiện riêng sheet nào bạn muốn Để vào trang soạn thảo code sheet nào, thì click phải chuột vào tên sheet đó và chọn View Code Bạn có thể chọn các kiện sheet, kiện liên quan đến sheet đó đổi ô chọn, thay đổi nội dung ô, kích hoạt sheet, thoát khỏi sheet, … để thực thi đoạn code VBA mình (10) Thường thì bạn đưa thẳng đến trang soạn thảo code riêng sheet bạn chọn View Code trên hướng dẫn Bạn có thể kiểm tra lại thực nó thuộc sheet bạn chọn hay không cách nhìn vào cửa sổ VBA Project bên trái, bạn thấy dạng thư mục This Workbook – Sheetname và sheet chọn thì đúng không bạn phải tìm đúng sheet bạn cần và doubled click nó Trước tiên bạn phải đặt name cho vùng ô bạn muốn nhập liệu trùng các sheet, giả sử là “MyRange” Sau đó gõ đoạn code này vào khung soạn thảo bên phải: PHP Chèn mã: [COLOR=#007700]Private [/COLOR][COLOR=#0000BB]Sub Worksheet_SelectionChange[/COLOR] [COLOR=#007700]([/COLOR][COLOR=#0000BB]ByVal Target [/COLOR][COLOR=#007700]As [/COLOR] [COLOR=#0000BB]Range[/COLOR][COLOR=#007700]) If [/COLOR][COLOR=#0000BB]Not Intersect[/COLOR][COLOR=#007700]([/COLOR] [COLOR=#0000BB]Range[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"MyRange"[/COLOR] [COLOR=#007700]), [/COLOR][COLOR=#0000BB]Target[/COLOR][COLOR=#007700]) [/COLOR] [COLOR=#0000BB]Is Nothing Then Sheets[/COLOR][COLOR=#007700](Array([/COLOR][COLOR=#DD0000]"Sheet5"[/COLOR] [COLOR=#007700], [/COLOR][COLOR=#DD0000]"Sheet3"[/COLOR][COLOR=#007700], [/COLOR] [COLOR=#DD0000]"Sheet1"[/COLOR][COLOR=#007700])).[/COLOR][COLOR=#0000BB]Select [/COLOR][COLOR=#007700]Else [/COLOR][COLOR=#0000BB]Me[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Select End [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]End Sub [/COLOR] Trong đoạn code trên, sheet5 ghi đầu tiên mảng Array, vì bạn muốn nó là sheet mà bạn gõ liệu nhập vào Bạn có thể chọn sheet khác để group chúng lại bên sheet5 Sau gõ code xong, nhấn nút View Object, nhấn nút View Microsoft Excel, nhấn Alt- Q, Alt-F11 đóng hẳn cửa sổ VBA trở màn hình Excel Lưu bảng tính lại Cần nhắc lại đoạn code trên phải nằm sheet khai báo đầu tiên Array, là sheet mà bạn nhập liệu từ bàn phím (11) Khi bạn đã hoàn tất, bạn click chọn ô nào đó sheet5, đoạn code kiểm tra xem ô bạn chọn có nằm vùng đã đặt tên “MyRange” không Nếu đúng, code Group các sheet lại với để bạn nhập liệu hàng loạt sheets Nếu không phải, nó ungroup chúng cách đơn giản là kích hoạt sheet hành Dùng đoạn code trên tiện lợi chỗ nó giải phóng bạn khỏi cái việc phải nhớ Group bắt đầu và UnGroup kết thúc nhập liệu vùng chọn Bây bạn muốn liệu nhập vào các sheet chọn, vị trí khác nhau, hãy dùng đoạn code khác: PHP Code: Chèn mã: [COLOR=#007700]Private [/COLOR][COLOR=#0000BB]Sub worksheet_Change[/COLOR] [COLOR=#007700]([/COLOR][COLOR=#0000BB]ByVal Target [/COLOR][COLOR=#007700]As [/COLOR] [COLOR=#0000BB]Range[/COLOR][COLOR=#007700]) If [/COLOR][COLOR=#0000BB]Not Intersect[/COLOR][COLOR=#007700]([/COLOR] [COLOR=#0000BB]Range[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"MyRange"[/COLOR] [COLOR=#007700]), [/COLOR][COLOR=#0000BB]Target[/COLOR][COLOR=#007700]) [/COLOR] [COLOR=#0000BB]Is Nothing Then With Range[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"MyRange"[/COLOR] [COLOR=#007700]) [/COLOR][COLOR=#0000BB]Copy Destination[/COLOR][COLOR=#007700]:=[/COLOR] [COLOR=#0000BB]Sheets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"Sheet3"[/COLOR] [COLOR=#007700]).[/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700]([/COLOR] [COLOR=#DD0000]"A1"[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Copy Destination[/COLOR][COLOR=#007700]:=[/COLOR] [COLOR=#0000BB]Sheets[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"Sheet1"[/COLOR] [COLOR=#007700]).[/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700]([/COLOR] [COLOR=#DD0000]"D10"[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]End With End [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]End Sub [/COLOR] Đoạn code này phải đặt khung soạn thảo riêng sheet5 (12) Đoạn code này hoạt động khác với đoạn code trên Khi bạn thay đổi nội dung ô nào đó, code xác định xem ô hành có nằm vùng "MyRange" hay không, phải thì copy nguyên vùng "MyRange" (của sheet5) và paste vào đồng thời ô A1 sheet1 và D10 sheet2 Ngược lại thì không làm gì Mong tuyệt chiêu này giúp bạn tiết kiệm thời gian và nhớ chính bạn Hẹn gặp lại ngày mai với tuyệt chiêu số Chiêu thứ 3: Ngăn chận người sử dụng thực số hành động nào đó định Mặc dù Excel có hỗ trợ việc bảo vệ cho bảng tính (Protect Sheet, Protect Workbook), công cụ thô sơ này không bao gồm việc cho phép người sử dụng số đặc quyền hạn chế - trừ bạn làm theo chiêu sau đây Bạn có thể quản lý việc tương tác với các bảng tính bạn cách giám sát và đáp ứng các kiện Các kiện (event), là hành động xảy bạn làm việc với các bảng tính các Sheet Những kiện này thường bao gồm việc mở (open) bảng tính, lưu (save) nó, và đóng (close) nó Bạn có thể bảo Excel chạy mã Visual Basic (macro) cách tự động xảy kiện Tuy nhiên, bạn nên biết rằng, người sử dụng có thể vượt qua tất mã bảo vệ Visual Basic bẳng cách vô hiệu hóa việc thực thi các macro: Nhấn nút Office ➝ Excel Opions ➝ Trust Center ➝Trust Center Setting ➝ Macro Settings [E2003: Tools | Macro | Security] Nếu đặt mức độ an toàn làDisable all macros with notification [E2003: mức Medium], mở bảng tính có chứa macro, Excel xuất hộp thông báo và cho phép người sử dụng có hội để tắt các macro Nếu đặt mức độ an toàn là Disable all macros without notification [E2003: mức High], Excel ngăn không cho chạy tất các macro có bảng tính Nói cách khác, cần phải dùng các macro có bảng tính, người sử dụng chọn mức an toàn thích hợp phép sử dụng các macro Ngăn chận việc lưu lại bảng tính với tên khác Bạn có thể thiết lập thuộc tính "Read only" cho bảng tính nào, cách nhấn Office ➝Save, nhấn nút Tools, chọn General Options [E2003: File | Save As | Tools | General Options] và kích hoạt hộp kiểm Read only recommended Việc này ngăn chận người sử dụng lưu lại thay đổi trên bảng tính, họ lưu lại bảng tính với tên khác lưu vào nơi khác Tuy nhiên, có thể điều bạn muốn là không cho lưu lại bảng tính bạn với tên khác, không cho lưu vào nơi khác Nói cách khác, bạn muốn người khác có thể lưu lại bảng tính này với chính tên gốc nó, không chép nó Điều này đặc biệt hữu dụng có nhiều người cùng sử dụng chung bảng tính, và bạn không muốn ổ cứng mình đầy dẫy bảng tính này, cho dù là với tên khác, hay thư mục khác Sự kiện Before Save mà tôi nói đến đã có từ thời Excel 97 Đúng tên gọi nó, kiện này xuất trước bảng tính lưu, cho phép bạn can thiệp kịp thời việc lưu lại bảng tính, đưa cảnh báo, và không cho Excel lưu bảng tính Trước tự thực điều này vào bảng tính, hãy chắn chắn bạn đã lưu lại bảng tính bạn Bởi vì việc đưa đoạn code sau đây vào môt bảng tính chưa lưu, có thể gây cho bạn nhiều rắc rối Để đưa đoạn code sau vào bảng tính, bạn hãy chọn Develope ➝ Visual Basic (hoặc nhấn Alt+F11), và nhấp đúp chuột vào mục ThisWorkbook khung Project Explorer Nếu trên Ribbon bạn không có mục Develope, bạn hãy vào Excel Options➝ (13) Popular, đánh dấu vào tùy chọn Show Develope tab in the Ribbon, nhấn OK [E2003, nhấn phải chuột vào biểu tượng Excel bên trái menu File trên menu, và chọn mục View Code, minh họa hình bên dưới]: Sử dụng Quick access menu (trong Excel 2003) để nhập code áp dụng cho workbook Bạn hãy nhập đoạn code sau đây vào cửa sổ VBE Sau nhập xong, nhấn Alt+Q để trở Excel, lưu lại bảng tính: PHP Chèn mã: [COLOR=#000000][COLOR=#007700]Private [/COLOR][COLOR=#0000BB]Sub workbook_BeforeSave[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]ByVal SaveAsUI [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Boolean[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]_ Cancel [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Boolean[/COLOR] [COLOR=#007700]) [/COLOR][COLOR=#0000BB]Dim lReply [/COLOR][COLOR=#007700]As [/COLOR] [COLOR=#0000BB]Long [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]SaveAsUI [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]True Then lReply [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]MsgBox[/COLOR][COLOR=#007700] ([/COLOR][COLOR=#DD0000]"Sorry, you are not allowed to save this workbook as another name." [/COLOR][COLOR=#0000BB]_ [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#DD0000]"Do you wish to save this workbook?"[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]vbQuestion [/COLOR] [COLOR=#007700]+ [/COLOR][COLOR=#0000BB]vbOKCancel[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Cancel [/COLOR][COLOR=#007700]= ([/COLOR][COLOR=#0000BB]lReply [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]vbCancel[/COLOR][COLOR=#007700]) If [/COLOR][COLOR=#0000BB]Cancel [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]False Then Me[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Save Cancel [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]True End [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]End Sub [/COLOR][/COLOR] (14) Thử tí Bạn nhấn Ctrl+S (hoặc gọi lệnh Save) xem Bảng tính bạn lưu bình thường Bây bạn nhấn F12 (hoặc gọi lệnh Save as), bạn gặp cảnh báo, nói bạn không thể lưu lại bảng tính này tên nào khác, bạn vô hiệu hóa các macro Nói thêm, bạn lưu bảng tính có chứa macro code Excel 2007, bạn nhắc nhở bạn phải lưu file dạng cho phép macro hoạt động (macro-enable workbook), có phần mở rộng là *.xlsm, không thể lưu dạng bình thường (*.xlsx) Ngăn chận việc in bảng tính Đôi bạn phải rời bàn làm việc đâu đó mà quên tắt máy (chuyện này là chuyện thường), cho dù bạn đã làm công việc ngăn chận việc có đó chép bảng tính bạn ngoài, đã nói trên, có thể bạn còn lo xa hơn, muốn bảng tính này không bị in bạn vắng mặt Nếu thật bạn muốn vậy, bạn hãy dùng kiện Before Print Hãy nhập đoạn code sau cửa sổ VBE: PHP Chèn mã: (15) [COLOR=#000000][COLOR=#007700]Private [/COLOR][COLOR=#0000BB]Sub workbook_BeforePrint[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Cancel [/COLOR] [COLOR=#007700]As [/COLOR][COLOR=#0000BB]Boolean[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Cancel [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]True MsgBox [/COLOR][COLOR=#DD0000]"Sorry, you cannot Print from this workbook"[/COLOR] [COLOR=#007700], [/COLOR][COLOR=#0000BB]vbInformation End Sub [/COLOR][/COLOR] Nhấn Ctrl+Q để quay Excel và lưu lại Từ bây giờ, có có muốn lệnh in bảng tính này, không có gì xảy Dòng lệnh MsgBox đoạn code trên là tùy chọn, bạn nên sử dụng nó, vì ít thì nó để lại thông tin gì đó, để người khác không tưởng lầm máy in họ bị hư, là chương trình Excel có lỗi! Nếu bạn muốn ngăn chận in phần nào đó bảng tính, ví dụ không cho in Sheet1 và Sheet2, bạn sử dụng đoạn code sau: PHP Chèn mã: [COLOR=#000000][COLOR=#007700]Private [/COLOR][COLOR=#0000BB]Sub workbook_BeforePrint[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Cancel [/COLOR] [COLOR=#007700]As [/COLOR][COLOR=#0000BB]Boolean[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Select [/COLOR][COLOR=#007700]Case [/COLOR] [COLOR=#0000BB]ActiveSheet[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Name [/COLOR][COLOR=#007700]Case [/COLOR][COLOR=#DD0000]"Sheet1"[/COLOR][COLOR=#007700], [/COLOR][COLOR=#DD0000]"Sheet2" [/COLOR][COLOR=#0000BB]Cancel [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]True MsgBox [/COLOR][COLOR=#DD0000]"Sorry, you cannot print this sheet from this workbook"[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]_ vbInformation End Select End Sub [/COLOR][/COLOR] Dĩ nhiên bạn có thể thêm vào Sheet nào có bảng tính bạn Chỉ việc nhập tên nó vào hàng có lệnh Case, và tách biệt Sheet này với Sheet khác dấu phẩy, và nhớ nhập tên Sheet cặp dấu nháy kép Trong trường hợp bạn muốn ngăn chận không cho in Sheet mà thôi, bạn cần nhập tên Sheet đó (trong cặp nháy kép) sau chữ Case, và không cần gõ dấu phẩy Ngăn chận việc chèn thêm Sheet vào bảng tính Excel có chức Protect Workbook, không cho phép thay đổi cấu trúc bảng tính thêm, xóa, di chuyển, hay đổi tên các Sheet Tuy nhiên, có thể bạn muốn ngăn chận việc thêm Sheet thôi, còn việc khác thì cho phép Đoạn code sau đây giúp bạn làm việc đó: PHP Chèn mã: [COLOR=#000000][COLOR=#007700]Private [/COLOR][COLOR=#0000BB]Sub Workbook_NewSheet[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]ByVal Sh [/COLOR] [COLOR=#007700]As [/COLOR][COLOR=#0000BB]Object[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Application[/COLOR][COLOR=#007700].[/COLOR] [COLOR=#0000BB]DisplayAlerts [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]False MsgBox [/COLOR][COLOR=#DD0000]"Sorry, you cannot add any more sheets to this workbook"[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]_ vbInformation (16) Sh[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Delete Application[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]DisplayAlerts [/COLOR] [COLOR=#007700]= [/COLOR][COLOR=#0000BB]True End Sub [/COLOR][/COLOR] Khi có đó chèn thêm Sheet vào bảng tính, trước tiên Excel xuất hộp cảnh cáo: "Xin lỗi, bạn không thể thêm Sheet nào vào bảng tính này", lập tức, Excel xóa cái Sheet thêm vào nút OK hộp cảnh báo nhấn Công dụng dòng lệnhApplication.DisplayAlerts = False là không hiển thị hộp cảnh báo xác nhận việc xóa Sheet nào đó Excel Một cách khác để ngăn chận việc chèn thêm Sheet vào bảng tính là bạn chọn Review trên Ribbon, chọn lệnh Protect Workbook nhóm Changes, chọn lệnh Protect Structure and Windows [E2003: Tools | Protection | Protect Workbook đánh dấu kiểm vào tùy chọn Structure] và nhấn OK (có thể đặt password thích) Tuy nhiên, đã nói đầu bài, việc này ngăn chận hết thao tác với các Sheet bảng tính Chiêu thứ 4: Ngăn chặn các nhắc nhở không cần thiết Exel luôn luôn cảnh báo nhắc nhở bạn xác nhận các hành động và thao tác bạn Bài này hướng dẫn bạn cách loại bỏ các thông báo nhắc nhở Các kiểu cảnh báo mà tôi đề cập đây chính là các câu hỏi mà Excel hỏi bạn có cho macro hoạt động hay không là các thông báo các hành động xóa trang bảng tính Sau đây là số loại cảnh báo Excel: Thông báo kích hoạt Macro trong workbook không có macro Lỗi này phát sinh bạn đã thực ghi macro workbook, và mặc dù bạn đã xóa tất các mã lệnh macro các lần mở workbook sau đó Excel cảnh báo bạn là workbook có chứa macro o o o o Xóa macro: vào ngăn Developer | chọn Macro | chọn các macro và nhấn Delete để xóa [E2003: Tools | Macro | Macros] Bạn nhận thông báo kích hoạt macro thiết lập mức an toàn là “Disable all macro with notification” [E2003: mức Medium] Nếu mức an toàn thiết lập là “Enable all macors” [E2003: mức Low] thì các macro tự động kích hoạt mà không có tiếng kêu cảnh báo Nếu mức an toàn là “ Disable all macros without notification” [E2003: mức High] thì các macro tự động bị khóa lại không phép thực thi Khi bạn ghi macro, Excel chèn module vào để chứa các lệnh bạn và các hàm Vào lúc mở bảng tính, Excel kiểm tra xem bảng tính có chứa module nào không và chúng rỗng hay chứa các mã lệnh Việc xóa các macro bảng tính xóa tất các mã lệnh chứa bên module mà không xóa các module – giống việc uống cạn lon sửa và bỏ lại vỏ hộp sửa vào lại tủ lạnh Do vậy, bạn cần phải xóa các module này theo hướng dẫn sau Chọn ngăn Developer | chọn nút Visual Basic nhóm Code nhấn tổ hợp phím ALT+F11 [E2003: Tools | Macro | Visual Basic Editor (VBE) và chọn View | Project Explorer] Các nút lệnh trên ngăn Developer (17) Nếu không thấy cửa sổ Project thì bạn vào View và chọn Project Explorer nhấn tổ hợp phím Ctrl+R Cửa sổ Project Explorer Nhấp chuột lên các ký hiệu (+) để xem các thánh phần bị ẩn các nhánh cửa sổ Project và hãy tìm đến các module Bạn nhấp phải chuột lên module và chọn lệnh Remove Module từ thực đơn ngữ cảnh Nếu hỏi có xuất module thành tập tin thì hãy chọn No Nhấn tổ hợp ALT+Q để đóng cửa sổ VBE Thông báo nhắc nhở lưu trữ không có thay đổi nào Bạn có thể nhận thấy đôi bạn mở bảng tính và xem số thông tin đó mà Excel nhắc nhở bạn lưu lại các thay đổi Personal Macro Workbook mặc dù bạn không thay đổi gì đó Có thể bạn đã biết chưa, bạn đã có sử dụng hàm volatile (là hàm đó có sử dụng phương thức volatile) Personal Macro Workbook mình Một personal macro workbook là bảng tính ẩn tạo lần đầu tiên bạn ghi macro (Tools | Macro | Record NewMacro) với tùy chọn “Personal Macro Workbook” “Store Macro in” Macro này mở bạn sử dụng Excel Một hàm volatile làm bảng tính tự động tính toán lại bạn thực thao tác nào đó Excel, bao gồm việc mở và đóng bảng tính ứng dụng Excel Hai số các hàm volatile phổ biến là hàm Today() và Now() Hộp thoại Record Macro Vì thế, mặc dù bạn chắn là mình không có thay đổi gì bảng tính các hàm volatile này hoạt động âm thầm Điều này tính là thay đổi và Excel cảnh báo việc lưu trữ mặc dù không tồn thay đổi nào bảng tính Nếu bạn muốn Excel dừng việc thông báo lưu trữ các thay đổi mà bạn không thực hiện, bạn có vài cách thực Cách dễ thấy là ta không lưu các hàm volatile Personal Macro Workbook và nên xóa bỏ tất các hàm volatile có đó Hoặc, bạn cần các hàm volatile (18) không muốn Excel lưu lại các thay đổi không nhìn thấy này bạn có thể thêm đoạn code sau vào Workbook module Personal Macro Workbook để đánh lừa nó là bảng tính đã lưu PHP Code: Chèn mã: [COLOR=#007700]Private [/COLOR][COLOR=#0000BB]Sub Workbook_BeforeClose[/COLOR] [COLOR=#007700]([/COLOR][COLOR=#0000BB]Cancel [/COLOR][COLOR=#007700]As [/COLOR] [COLOR=#0000BB]Boolean[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Me[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Saved [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]True End Sub [/COLOR] Để mở Personal Macro Workbook bạn vào View | Unhide nhóm Window [E2003: Window | Unhide], chọn Personal.xls từ hộp thoại Unhide và nhấp nút OK Nhấn tổ hợp phím ALT+F11 để vào cửa sổ VBE, sau đó nhấp phải chuột lên ThisWorkbook từ Personal.xls cửa sổ Project chọn View Code và nhập đoạn mã trên vào Sau nhập xong, bạn nhấn tổ hợp phím ALT+Q để đóng sổ VBE lại Tất nhiên, bạn có sử dụng hàm volatile để tính toán lại bảng tính và bạn muốn lưu các thay đổi này thì bạn dùng đoạn mã sau thay cho đoạn mã nêu trên PHP Code: Chèn mã: [COLOR=#007700]Private [/COLOR][COLOR=#0000BB]Sub Workbook_BeforeClose[/COLOR] [COLOR=#007700]([/COLOR][COLOR=#0000BB]Cancel [/COLOR][COLOR=#007700]As [/COLOR] [COLOR=#0000BB]Boolean[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Me[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Save End Sub [/COLOR] Đoạn mã trên lưu lại Personal Macro Workbook cách tự động nó mở Dừng các cảnh báo Excel các macro đã ghi Một số nhiều hạn chế việc ghi macro là không tự thêm vào các lệnh loại bỏ các thông báo thực thi Ví dụ bạn ghi macro xóa worksheet và thực thi macro này bạn nhận thông báo xác nhận việc xóa worksheet Muốn tắt cảnh báo này, bạn làm hướng dẫn sau: Chọn ngăn Developer | Macros nhóm Code nhấn ALT+F8 [E2003: Tools | Macro | Macros] để gọi hộp thoại Macro Tại Macro in chọn “All Open Workbooks”, chọn tên macro mà bạn vừa ghi và nhấn nút Edit Đặt trỏ lên trước dòng lệnh đầu tiên thủ tục và nhập vào dòng lệnh sau: Application.DisplayAlerts = False Tại sau dòng lệnh cuối cùng, bạn thêm vào: Application.DisplayAlerts = True Macro bạn sau thêm dòng lệnh trên giống sau: PHP Code: Chèn mã: [COLOR=#0000BB]Sub MyMacro[/COLOR][COLOR=#007700]( ) [/COLOR][COLOR=#DD0000]' ' [/COLOR][COLOR=#0000BB]MyMacro Macro Application[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]DisplayAlerts [/COLOR] [COLOR=#007700]= [/COLOR][COLOR=#0000BB]False ActiveSheet[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Delete (19) Application[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]DisplayAlerts [/COLOR] [COLOR=#007700]= [/COLOR][COLOR=#0000BB]True End Sub [/COLOR] Lưu ý rằng, bạn đã bật chức cảnh báo Excel lại dòng lệnh cuối cùng macro Nếu bỏ dòng lệnh này, bạn không nhận các cảnh báo và điều này có thể gây nguy hại vì có thể bạn vô tình thực thao tác nhầm lẫn nghiêm trọng nào đó mà không nhận cảnh báo để xác nhận hành động Chiêu thứ 5: Ẩn sheet cho người dùng không thể dùng lệnh unhide để Đôi bạn có thông tin trên sheet nào đó và bạn không muốn người dùng đọc Bạn muốn có khu vực (có thể là sheet) ghi chép liệu, công thức, chi tiết vụn vặt và không muốn cho nhìn thấy Thí dụ sheet chứa vùng làm liệu cho Data Validation, Combobox, tên biến và giá trị biến dùng làm const VBA, thông tin nhạy cảm và thứ khác Mặc dù bạn có thể dấu sheet đó cách chọn View ➝Hide mục chọn Window (đối với Excel 2003 là Format ➝Sheet ➝Hide), tốt bạn làm cách khác để người dùng không thể chọn View ➝ Unhide mục chọn Window (đối với Excel 2003 là Format ➝Sheet ➝ Unhide) Bạn có thể dùng chức khoá bảng tính, nó nhìn thấy Hơn bạn không thể khoá ô chứa liệu kết nối với control tạo công cụ Form Thay vì vậy, bạn hãy thiết lập trạng thái cho sheet dạng xlVeryHidden Vào Developer ➝Visual Basic nhấn Alt-F11 để vào trang soạn thảo VBE (đối với Excel 2003 thì vào menu Tools ➝Macro ➝Visual Basic Editor và nhìn bên trái khung Project Explorer, không thấy thì (20) chọn View - Project Explorer Tìm tên file và bấm vào dấu cộng để các tên sheet Chọn tên sgeet nào bạn muốn dấu, mở khung Property cách vào menu View – Property Window (hoặc nhấn F4) Chọn tab Alphabetic, tìm dòng Visible và chọn 2- xlsSheetVeryHidden Nhấn AltQ để trở trang tính Excel, lưu thay đổi này Sheet bạn chẳng có thể thấy cách thông thường trên menu View – Unhide hay Format – Sgeet – Unhide Để thấy trở lại, bạn phải vào chỗ cũ, chọn lại -1 – xlSheetVisible Chiêu thứ 6: Tự thiết kế bảng tính mẫu (template) Nếu bạn thường xuyên phải thực cùng kiểu trình bày cho bảng tính mình, bạn có thể tự thiết kế bảng tính mẫu cho riêng bạn, là bảng tính đã có sẵn tiêu đề, số cột, số hàng nào đó, chí là Name và công thức; đồng thời còn có thể tạo hộp thoại riêng vào Thư viện các Templates Excel Không biết là, có nào bạn sử dụng các Template không? Nghĩa là thay vì nhấn (21) Ctrl+N để tạo bảng tính mới, thì bạn nhấn vào nút Office, chọn lệnh New [E2003: File | New], và chọn kiểu bảng tính đã thiết kế sẵn thư viện các Template, sau đó sửa lại bảng tính này thành cái mình? Chọn bảng tính đã thiết kế sẵn thư viện Templates Excel Nếu bạn đã thấy, đã sử dụng bảng tính đã đươc thiết kế sẵn này, bạn thấy hữu dụng nó, nhờ nó mà chúng ta tiết kiệm bao nhiêu là thời gian cho việc thiết kế và trình bày Và, công việc, bạn phải thường xuyên thiết kế bảng tính có cấu trúc giống nhau, tôi nghĩ việc bạn thường làm là mở bảng tính đã có, xóa phần nội dung và lưu lại với tên khác, phải không? Nhưng cách làm này, đôi sơ ý, bạn xóa luôn công thức mà bạn đã hàng để nghĩ ra, phải thời gian cho thao tác xóa Vậy, có bạn nghĩ đến chuyện làm cái giống Template có sẵn Excel không? Để cần loại bảng tính nào đó (một bảng lương, bảng chấm công, báo giá, v.v ) thì bạn việc vào Thư viện Templates, chí là vào "Thư viện riêng" bạn, lấy cái mẫu việc nhập số liệu vào? Tiết kiệm bao nhiêu là thời gian Chiêu thứ này giúp bạn thực điều tôi vừa nói (22) Tạo bảng tính mẫu Những Template cho phép bạn có sẵn "dự án" (project), có nghĩa là bạn có sẵn môt bảng tính, bao gồm phần tiêu đề bảng tính, số hàng và cột với các tiêu đề nó, các công thức, và các Name (nếu có) Ví dụ, đây là Template BillingStatement1 có sẵn Excel 2007: Template BillingStatement1 có sẵn Excel 2007 Bạn có thể tạo cái giống vậy, sau đó lưu lại thành Template Việc này không có gì khó Bạn mở bảng tính mới, tạo cái sườn: tô màu, định dạng, đặt Name, thiết kế công thức, v.v bình thường bạn làm, khoan nhập liệu vào Bạn hãy xóa hết các Sheet không cần thiết, giữ lại Sheet đã thiết kế thôi Hoặc bạn có thể mở bảng tính đã có sẵn, xóa hết liệu thô, giữ lại phần trình bày Sau đó, bạn nhấn F12 (Save as ) chọn Excel Template: (23) Chọn loại file là Excel Template cửa sổ Save Bạn hãy đặt cho nó cái tên dễ nhớ, nhấn Save Theo mặc định thì Excel lưu bảng tính mẫu này vào Thư mục chứa các Template đã tạo bạn cài đặt Excel 2007: (24) Excel tự động chọn thư mục để lưu các Template Mỗi cần sử dụng bảng tính có cấu trúc y hệt bảng tính bạn vừa lưu với dạng Template trên, bạn nhấn nút Office ➝ New [E2003: File | New], chọn tiếp My Templates cửa sổ New Workbook: (25) Chọn My Template để mở các bảng tính mẫu đã lưu Các bảng tính mẫu mà bạn đã tạo và lưu lại tôi đã trình bày trên, Bạn việc chọn mẫu bạn cần, nhấn OK (26) Excel tự động chọn thư mục để lưu các Template Tạo tab riêng cửa sổ My Templates Như bạn đã thấy hình phía trên đây, bạn nhấn My Templates cửa sổ New Workbook, cửa sổ New mở Để ý tí, bạn thấy cửa sổ này có dạng cái tab Nhưng nó nó tab My Templates thôi Giả sử bạn đã tạo nhiều bảng tính mẫu, thay vì "nhét" tất vào chỗ, bạn có muốn tạo thêm tab riêng cho loại mẫu không? Ví dụ, tab "Báo cáo thuế", tab "Báo giá", v.v hay ? Khi bạn nhấn F12 để lưu lại với dạng Template tôi đã trình bày phần trên, thì thay vì để Excel chọn thư mục lưu tự động, bạn hãy nhấn nút Create New Folder: (27) Nhấn nút Create New Folder để tạo thêm tab cho các Template Một hộp thoại mở ra, và bạn nhập cái tên cho nhóm biểu mẫu mà bạn muốn Ở đây, tôi tạo thêm nhóm là "Báo cáo thuế" để lưu bảng tính dùng để in các báo cáo nộp cho quan thuế, nhấn OK, đặt tên cho Template, và nhấn Save Vậy là xong đó Tôi mở thử cho bạn xem nhé: (28) Bạn thấy không, cửa sổ New này, đã có thêm tab là "Báo cáo thuế" Hay nhỉ! Một điều lưu ý, là không thừa Tất Template và thư mục mà bạn đã tự tạo bài này, nằm đây: C:\Documents and Settings\Owner\Application Data\Microsoft\Template Với Owner là tên Acount mà bạn đã tạo sử dụng Windows Tôi đã thử thay đổi nơi lưu các Template này, không Khi chọn My Template cửa sổ New Workbook, Excel liệt kê Template nào nằm cái đường dẫn trên đây mà thôi Do đó, cài đặt lại Windows, có thể bạn hết tất gì nằm thư mục C:\Documents and Settings Vậy, điều lưu ý đây là, bạn nên tạo dự phòng cho các Template này, cất giữ cẩn thận Sau này, có phải cài đặt lại Windows, bạn việc chép các vào đúng chỗ nó (chính là cái đường dẫn trên đây), là có thể sử dụng tiếp Chiêu thứ 7: Tạo mục cho các Sheet Workbook Nếu bạn đã tốn quá nhiều thời gian workbook (bảng tính) với nhiều worksheet (trang tính), bạn cảm thông khó khăn việc tìm kiếm trang tính nào đó Khi đó, có lẽ ta nên lập mục các trang tính có để thuận tiện cho việc điều hướng bảng tính Bằng cách sử dụng mục các trang tính cho phép bạn nhanh chóng và dễ dàng điều hướng bảng tính, cú nhấp chuột đưa bạn đến chính xác nơi bạn muốn đến mà không lo bị nhầm lẫn Bạn có thể tạo mục vài cách: tay, tự động tạo mã VBA, là sử dụng trình đơn tùy chọn theo ngữ cảnh (thậm chí có thể dùng các hàm Macro4 – không trình bày đây) (29) Tạo mục thủ công Cách này dễ làm, bạn cần chèn worksheet và đăt cho nó cái tên, ví dụ tên là Index Sau đó, bạn nhận vào tên các worksheet có workbook và tạo các siêu liên kết (hyperlink) đến các worksheet tương ứng với tên mà bạn nhập Để tạo hyperlink bạn chọn tên sheet, sau đó vào Insert | chọn Hyperlink nhóm Links [E2003: Insert | Hyperlinks] nhấn phím tắt là Ctrl+K để mở hộp thoại Insert Hyperlink Hộp thoại Insert Hyperlink Chọn Place in This Document và chọn tên Sheet muốn kết nối tới Nhấn nút OK để hoàn tất Phương pháp này phù hợp bảng tính không có quá nhiều worksheet và tên worksheet không có thay đổi thường xuyên, không gây nhiều khó khăn cho công tác bảo trì trang mục Tạo mục tự động cách sử dụng VBA Một cách thay khác là sử dụng VBA để tự động tạo các mục Đoạn mã sau đây tự động tạo bảng mục liên kết đến tất các worksheet mà bạn có workbook Bảng mục này tạo lại worksheet lưu mục chọn Đoạn mã này phải đặt private module Sheet chứa Chèn worksheet vào workbook và đặt tên cho nó là Index chẳng hạn Nhấp chuột phải vào tên worksheet vừa tạo và chọn ViewCode từ trình đơn ngữ cảnh nhấn tổ hợp phím Alt+F11 Nhập đoạn mã VBA sau vào cửa sổ Code: PHP (30) Chèn mã: [COLOR=#007700]Private [/COLOR][COLOR=#0000BB]Sub Worksheet_Activate[/COLOR] [COLOR=#007700]() [/COLOR][COLOR=#0000BB]Dim wSheet [/COLOR][COLOR=#007700]As [/COLOR] [COLOR=#0000BB]Worksheet Dim lCount [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Long lCount [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]1 With Me [/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Columns[/COLOR][COLOR=#007700] ([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]ClearContents [/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Cells[/COLOR][COLOR=#007700] ([/COLOR][COLOR=#0000BB]1[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]1[/COLOR] [COLOR=#007700]) = [/COLOR][COLOR=#DD0000]"INDEX" [/COLOR][COLOR=#0000BB]End With [/COLOR][COLOR=#007700]For [/COLOR][COLOR=#0000BB]Each wSheet In Worksheets [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]wSheet[/COLOR][COLOR=#007700] [/COLOR][COLOR=#0000BB]Name [/COLOR][COLOR=#007700]<> [/COLOR] [COLOR=#0000BB]Me[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Name Then lCount [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]lCount [/COLOR] [COLOR=#007700]+ [/COLOR][COLOR=#0000BB]1 With wSheet [/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Range[/COLOR][COLOR=#007700] ([/COLOR][COLOR=#DD0000]"A1"[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Name [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#DD0000]"Start" [/COLOR][COLOR=#007700]& [/COLOR][COLOR=#0000BB]wSheet[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Index [/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Hyperlinks[/COLOR] [COLOR=#007700].[/COLOR][COLOR=#0000BB]Add Anchor[/COLOR][COLOR=#007700]:=.[/COLOR] [COLOR=#0000BB]Range[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"A1"[/COLOR] [COLOR=#007700]), [/COLOR][COLOR=#0000BB]Address[/COLOR][COLOR=#007700]:=[/COLOR] [COLOR=#DD0000]""[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]SubAddress[/COLOR] [COLOR=#007700]:= [/COLOR][COLOR=#0000BB]_ [/COLOR][COLOR=#DD0000]"Index"[/COLOR][COLOR=#007700], [/COLOR] [COLOR=#0000BB]TextToDisplay[/COLOR][COLOR=#007700]:=[/COLOR][COLOR=#DD0000]"Back to Index" [/COLOR][COLOR=#0000BB]End With Me[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Hyperlinks[/COLOR] [COLOR=#007700].[/COLOR][COLOR=#0000BB]Add Anchor[/COLOR][COLOR=#007700]:=[/COLOR] [COLOR=#0000BB]Me[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Cells[/COLOR] [COLOR=#007700]([/COLOR][COLOR=#0000BB]lCount[/COLOR][COLOR=#007700], [/COLOR] [COLOR=#0000BB]1[/COLOR][COLOR=#007700]), [/COLOR][COLOR=#0000BB]Address[/COLOR] [COLOR=#007700]:=[/COLOR][COLOR=#DD0000]""[/COLOR][COLOR=#007700], [/COLOR] [COLOR=#0000BB]SubAddress[/COLOR][COLOR=#007700]:= [/COLOR][COLOR=#0000BB]_ [/COLOR][COLOR=#DD0000]"Start" [/COLOR][COLOR=#007700]& [/COLOR] [COLOR=#0000BB]wSheet[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Index[/COLOR] [COLOR=#007700], [/COLOR][COLOR=#0000BB]TextToDisplay[/COLOR][COLOR=#007700]:=[/COLOR] [COLOR=#0000BB]wSheet[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Name End [/COLOR][COLOR=#007700]If [/COLOR][COLOR=#0000BB]Next wSheet End Sub [/COLOR] Nhấn tổ hợp phím Alt+Q để thoát VBE và trở cửa sổ bảng tính, sau đó lưu bảng tính lại Để chạy đoạn mã vừa tạo, bạn dùng chuột chọn sang worksheet khác workbook và sau đó chọn lại worksheet Index để kích hoạt kiện Worksheet_Activate Lưu ý rằng, đoạn mã các đặt tên (Name) cho các ô A1 worksheet kèm theo số mục worksheet bảng tính (worksheet đầu tiên có mục là 1, kế đó là 2, 3… n) Điều này (31) bảo đảm ô A1 trên trang tính có tên khác Nếu ô A1 trên worksheet bạn đã đặt tên, bạn nên cân nhắc đến việc thay đổi ô A1 đoạn mã sang địa khác phù hợp Thêm thuộc tính cho workbook Lưu ý, bạn có thiết lập Hyperlink base (siêu liên kết sở) workbook thì các hyperlink tạo từ đoạn mã trên không thể hoạt động được, chúng đã liên kết đến các Name workbook hành Khi thuộc tính hyperlink base thiết lập thì các siêu liên kết trỏ đến hyperlink base kết hợp với các Name Thêm thuộc tính Hyperlink base: Vào Office | Prepare | Properties | Document Properties | chọn Advanced Properties [E2003: File | Properties | Summary] và nhập vào hyperlink base Ví dụ chúng ta nhập vàohttp://www.giaiphapexcel.com/ Siêu liên kết trước và sau thêm Hyperlink base Thêm lệnh gọi mục vào trình đơn ngữ cảnh Cách thứ ba hướng dẫn bạn thêm lệnh vào trình đơn ngữ cảnh để gọi danh sách các worksheet workbook và bạn có thể chọn lệnh này cách kích phải chuột vào vùng bảng (32) tính Đoạn mã sau gọi lệnh Tabs workbook hình sau: Thêm lệnh “Sheet Index” vào trình đơn ngữ cảnh Nhấn Alt+F11 để mở cửa sổ VBE, sau đó nhập đoạn mã sau vào cửa sổ Code ThisWorkbook: PHP Chèn mã: [COLOR=#007700]Private [/COLOR][COLOR=#0000BB]Sub Workbook_SheetBeforeRightClick[/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]ByVal Sh [/COLOR][COLOR=#007700]As [/COLOR][COLOR=#0000BB]Object[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]ByVal Target [/COLOR][COLOR=#007700]As [/COLOR] [COLOR=#0000BB]Range[/COLOR][COLOR=#007700], [/COLOR][COLOR=#0000BB]Cancel [/COLOR] [COLOR=#007700]As [/COLOR][COLOR=#0000BB]Boolean[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]Dim cCont [/COLOR][COLOR=#007700]As [/COLOR] [COLOR=#0000BB]CommandBarButton On Error Resume Next Application[/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]CommandBars[/COLOR] [COLOR=#007700]([/COLOR][COLOR=#DD0000]"Cell"[/COLOR][COLOR=#007700]).[/COLOR] [COLOR=#0000BB]Controls[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"Sheet Index"[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Delete On Error GoTo Set cCont [/COLOR][COLOR=#007700]= [/COLOR][COLOR=#0000BB]Application[/COLOR] [COLOR=#007700].[/COLOR][COLOR=#0000BB]CommandBars[/COLOR][COLOR=#007700]([/COLOR] [COLOR=#DD0000]"Cell"[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]Controls[/COLOR] [COLOR=#007700].[/COLOR][COLOR=#0000BB]Add _ [/COLOR][COLOR=#007700]([/COLOR][COLOR=#0000BB]Type[/COLOR] [COLOR=#007700]:=[/COLOR][COLOR=#0000BB]msoControlButton[/COLOR][COLOR=#007700], (33) [/COLOR][COLOR=#0000BB]Temporary[/COLOR][COLOR=#007700]:=[/COLOR] [COLOR=#0000BB]True[/COLOR][COLOR=#007700]) [/COLOR][COLOR=#0000BB]With cCont [/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]Caption [/COLOR] [COLOR=#007700]= [/COLOR][COLOR=#DD0000]"Sheet Index" [/COLOR][COLOR=#007700].[/COLOR][COLOR=#0000BB]OnAction [/COLOR] [COLOR=#007700]= [/COLOR][COLOR=#DD0000]"IndexCode" [/COLOR][COLOR=#0000BB]End With End Sub [/COLOR] Tiếp theo, bạn vào Insert | Module và nhập vào đoạn mã sau: PHP Chèn mã: [COLOR=#0000BB]Sub IndexCode[/COLOR][COLOR=#007700]() [/COLOR][COLOR=#0000BB]Application[/COLOR][COLOR=#007700].[/COLOR] [COLOR=#0000BB]CommandBars[/COLOR][COLOR=#007700]([/COLOR][COLOR=#DD0000]"workbook Tabs"[/COLOR][COLOR=#007700]).[/COLOR][COLOR=#0000BB]ShowPopup End Sub [/COLOR] Đoạn mã trên thực thi bạn chọn lệnh “Sheet Index” từ trình đơn ngữ cảnh và bạn phải đặt nó Module thì Excel có thể thấy thủ tục này Nhấn Alt+Q để đóng cửa sổ VBE trở bảnh tính Excel Kể từ lúc này, bạn nhấp phải chuột ô nào worksheet nào thì trình đơn ngữ cảnh có thêm lệnh “Sheet Index” giúp bạn điều hướng đến worksheet nào workbook cách dễ dàng (34)