Hướng dẫn cách ẩn trang tính theo ý muốn bằng VBA trong Excel

Nội dung được viết bởi Trần Linh Chi

Khi làm việc với một tệp Excel có rất nhiều trang tính, có những trang tính bạn không thường hay sử dụng. Nếu để hết trên thanh tên trang tính sẽ rất rối mắt và gây ra khó khăn trong việc tìm kiếm trang tính. Vì vậy, bạn nên ẩn trang tính không cần sử dụng hoặc không hay sử dụng tới đi, khi nào cần tới mới bỏ ẩn trang tính đó để sử dụng như bình thường. Trong bài viết này, Gitiho sẽ hướng dẫn bạn cách ẩn trang tính cũng như bỏ ẩn trang tính trong Excel theo 2 cách.

Ẩn và bỏ ấn trang tính trong Excel 

Cách ẩn trang tính trong Excel

Nhấp chuột phải vào tên trang tính mà bạn muốn ẩn trang tính, sau đó chọn Hide. Lúc này trang tính bạn đã chọn đã được ẩn đi. 

Hướng dẫn cách ẩn trang tính theo ý muốn bằng VBA trong Excel

Ngoài ra, bạn có thể ẩn nhiều trang tính cùng một lúc. Cách thực hiện cũng giống như ẩn trang tính đối với từng trang tính riêng lẻ. Tuy nhiên, trước khi chọn chức năng Hide, bạn hãy nhấp chọn vào tên 1 trang tính muốn ẩn, sau đó nhấn giữ phím Shift và tiếp tục nhấp chọn vào tên các trang tính khác muốn ẩn đi.  Sau đó, nhấp chuột phải và chọn Hide.

Hướng dẫn cách ẩn trang tính theo ý muốn bằng VBA trong Excel

Cách bỏ ẩn trang tính trong Excel

Để bỏ ẩn trang tính trong Excel, ta làm theo các bước sau:

Nhấp chuột phải vào thẻ tên của một trang tính bất kì, chọn Unhide (Bỏ ẩn trang tính)

Hướng dẫn cách ẩn trang tính theo ý muốn bằng VBA trong Excel

Lúc này, hộp thoại Unhide sẽ xuất hiện. Bạn muốn bỏ ẩn trang tính nào thì nhấp chọn vào trang tính đó và chọn OK. Lưu ý: Mỗi lần thực hiện thao tác chỉ có thể bỏ ẩn trang tính đối với 1 trang tính mà thôi, không thể bỏ cùng lúc nhiều trang tính. Và để dễ dàng biết đâu là trang tính mình muốn bỏ ẩn trang tính,  bạn nên đặt tên cho trang tính trước khi ẩn trang tính

Hướng dẫn cách ẩn trang tính theo ý muốn bằng VBA trong Excel

Tuy nhiên, nếu thực hiện theo cách truyền thống này thì chỉ có thể bỏ ẩn trang tính đối với 1 trang tính mà thôi. Để ẩn trang tính hoặc bỏ ẩn nhiều trang tính cùng một lúc, bạn hoàn toàn có thể tạo 1 menu như một bảng điều khiển ẩn trang tính hoặc bỏ ẩn trang tính trong tệp Excel nhanh chóng và tiện lợi hơn rất nhiều bằng VBA trong Excel. Cách tạo menu này cũng rất dễ đó! Các bước thực hiện như sau:

Ẩn và bỏ ẩn trang tính bằng VBA Excel

Bước 1: Chuẩn bị 

Tại tệp Excel bạn muốn tạo menu điều khiển ẩn hoặc bỏ ẩn trang tính, bạn tạo 1 trang tính (Sheet) và đặt tên là Menu. Trong trang tính Menu, bạn chuẩn bị các dữ liệu như ảnh sau:

Hướng dẫn cách ẩn trang tính theo ý muốn bằng VBA trong Excel

Các trang tính còn lại trong tệp, bạn có thể đặt tên hoặc tô màu cho thẻ tên trang tính tùy theo ý thích. 

Vẽ nút lệnh:  Vào thẻ Insert > Shapes > Vẽ 2 hình khối (có thể sử dụng hình tùy ý mong muốn, ở đây Gitiho sẽ dùng 2 hình chữ nhật) để làm 2 nút lệnh ẩn hoặc bỏ ẩn trang tính và danh sách tên trang tính. Vẽ vào vị trí bất kì trong trang tính. Nên vẽ ngay bên cạnh bảng vừa tạo ở trên để tiện quan sát và điều khiển các thao tác ẩn và bỏ ẩn trang tính. Sau đó định dạng cho nút lệnh như nhập nội dung, trang trí nút lệnh theo mong muốn.

Hướng dẫn cách ẩn trang tính theo ý muốn bằng VBA trong Excel

Chú ý: Bạn có thể tải mẫu của trang tính Menu này ở cuối bài nhé! Sau khi tải mẫu về, bạn có thể tạo 1 trang tính mới trong tệp của bạn, sau đó sao chép bảng mẫu và dán vào trang tính đó. Hoặc bạn có thể lấy dữ liệu từ bảng tính mẫu vào tệp Excel của bạn: Hướng dẫn cách lấy dữ liệu từ file Excel này sang file Excel khác

Lưu tệp Excel này dưới định dạng Excel Macro - Enabled Template để tạo tệp lưu trữ macro cho VBA trong Excel.

Bước 2: Viết Macro

Để có thể điều kiển thao tác ẩn và bỏ ẩn trang tính trong Excel bằng VBA, chúng ta cần phải viết được macro lấy danh sách tên trang tính

Đầu tiên, tạo 1 module trong cửa số VBA để bắt đầu viết macro

Trong Module vừa tạo, bạn viết đoạn code dưới đây. Đoạn code này dùng để liệt kê tất cả các trang tính có trong tệp vào bảng danh sách chúng ta chuẩn bị ở bước 1. 

Sub SheetList() Dim ws As Worksheet Dim lr As Long    lr = 2  For Each ws In ThisWorkbook.Worksheets    Sheets("MENU").Range("A" & lr).Value = ws.Name      lr = lr + 1  Next ws End Sub

Gán Macro vừa viết vào nút lệnh danh sách tên bằng Assign Macro

Hướng dẫn cách ẩn trang tính theo ý muốn bằng VBA trong Excel

Khi nhấp chuột vào nút lệnh Danh sách tên, Macro sẽ tự động liệt kê toàn bộ tên trang tính vào cột A, bắt đầu từ ô A2

Hướng dẫn cách ẩn trang tính theo ý muốn bằng VBA trong Excel

Bước 3: Viết công thức ẩn và bỏ ẩn trang tính

Trước khi viết công thức ẩn và bỏ ẩn trang tính, chúng ta cần hiểu logic:

Nếu trang tính nào đang được ẩn thì sẽ không hiện, nếu không ẩn trang tính thì trang tính sẽ hiện

Vì vậy, chúng ta chỉ cần điều khiển cột ẩn trang tính (cột Ẩn - cột B) thì cột bỏ ẩn trang tính (cột Hiện - cột C) sẽ tự động dựa theo công thức để lấy kết quả

Có công thức ở cột C như sau:

Hướng dẫn cách ẩn trang tính theo ý muốn bằng VBA trong Excel

Ở đây, "x" là ký tự đại diện cho việc bạn sẽ đánh dấu ký hiệu cho việc trang nào sẽ được chọn để ẩn hoặc bỏ ẩn trang tính. Công thức như sau: 

=IF(A3=””, “”, IF(B3=”x”, “”, “x”))

Trong đó:

  • IF(A3=””, “”,  : Nếu giá trị trong ô A3 là rỗng (không có tên trang tính) thì trả về giá trị rỗng
  • IF(B3=”x”, “”, “x”): Nếu giá trị trong ô B3 (được đánh dấu x cho việc ẩn trang tính) thì giá trị trong cột Hiện sẽ là rỗng. Ngược lại nếu không đánh dấu x vào ô Ẩn thì sẽ trả về giá trị x tại ô Hiện

Công thức này sẽ nhập bắt đầu từ trang tính ngay dưới trang tính Menu. Ở trang tính Menu, ta nhập giá trị "x" luôn để thể hiện trang tính Menu sẽ luôn hiện

Bước 4: Viết code để ẩn và bỏ ẩn trang tính

Tạo 1 đoạn code có tên AnHien_Sheet như sau:

Sub AnHien_Sheet()
Dim lr As Long
    lr = Sheets("MENU").Cells(Rows.Count, 1).End(xlUp).Row

Dim sodong As Long
'An/hien sheet
For sodong = 2 To lr
    'Mo an tat ca cac sheet
    Worksheets(Sheets("MENU").Range("A" & sodong).Value).Visible = xlSheetVisible
    'An sheet duoc danh dau
    If Sheets("MENU").Range("B" & sodong).Value = "x" Then
        Worksheets(Sheets("MENU").Range("A" & sodong).Value).Visible = xlSheetHidden
    End If
Next sodong

Sheets("MENU").Activate
End Sub

Sau khi viết xong đoạn code thì gán đoạn code vào nút lệnh Ẩn và bỏ ấn trang tính 

Tổng kết

Trong bài viết trên, Gitiho đã hướng dẫn bạn cách ẩn và bỏ ẩn trang tính trong Excel với 2 cách là ẩn/bỏ ẩn trang tính theo cách truyền thống và tự động ẩn/bỏ ấn trang tính bằng VBA Excel.

Qua bài viết, bạn có thể thấy, việc ứng dụng VBA vào Excel giúp cho quá trình làm việc với bảng tính Excel trở nên đơn giản và nhanh chóng hơn rất là nhiều, kể cả những tệp Excel với rất nhiều bảng tính và nhiều dữ liệu. Để tìm hiểu công cụ cực kì hữu ích này, hãy tham gia khóa học Tuyệt đỉnh VBA - Viết Code trong tầm tay để làm quen  với VBA từ A tới Z và ứng dụng thành thạo VBA vào Excel nhé!

Tài liệu kèm theo bài viết

Bạn đã dùng Excel lâu năm, nhưng đến giờ này vẫn còn đang:

  • Không biết sử dụng các chức năng trong Excel ở mục nào, mỗi lần động tới việc gì là phải lên mạng hỏi Google.
  • Biết vài hàm cộng trừ cơ bản, không giúp ích được quá nhiều trong công việc
  • Tốn nhiều thời gian làm việc, thường xuyên phải OT do không thành thạo Excel.
  • Không được tăng lương vì vẫn còn làm những bảng tính, báo cáo Excel sơ sài, kém chuyên nghiệp.
  • Không biết tự động hóa quy trình để làm việc nhàn hơn với marco hay VBA.

Vậy thì tại sao bạn không đăng ký ngay khóa học Tuyệt đỉnh Excel - Khóa học Excel online từ cơ bản đến nâng cao của Gitiho. Bạn sẽ nhanh chóng làm chủ công cụ này và tự tin khi thực hiện công việc từ tạo bảng tính, quản lý và tính toán số liệu, thành thạo các tính năng và hàm Excel, tạo và tùy chỉnh báo cáo và biểu đồ cho đến tự động hóa Excel bằng VBA.

Bấm vào Đăng ký ngay để bắt đầu học Excel cùng Gitiho nhé!

0/5 - (0 bình chọn)

0/5 - (0 bình chọn)

0 thảo luận

@ 2020 - Bản quyền của Công ty cổ phần công nghệ giáo dục Gitiho Việt Nam
Giấy chứng nhận Đăng ký doanh nghiệp số: 0109077145, cấp bởi Sở kế hoạch và đầu tư TP. Hà Nội
Giấy phép mạng xã hội số: 588, cấp bởi Bộ thông tin và truyền thông