VBA Excel (Bài 19): Tạo tổ hợp phím tắt để di chuyển qua lại giữa các Worksheet trong Excel

ALT+ TAB: tổ hợp phím tắt đơn giản này cho phép bạn di chuyển qua lại giữa cửa sổ chương trình hiện tại với cửa sổ chương trình trước đó bạn đã xem. Điều này rất thuận tiện khi bạn phải kiểm tra dữ liệu từ hai nguồn khác nhau hay đơn giản là bạn chỉ đang làm nhiều việc cùng một lúc. Tất cả người sử dụng máy tính đều nhận thấy nó rất hữu ích.

Tuy nhiên, trong Excel không thể tìm thấy một tổ hợp phím tắt tương tự như vậy để di chuyển qua lại giữ hai tabs Excel. Bạn chỉ có thể di chuyển giữa hai worksheet thông qua tổ hợp phím sau:

  1. CTRL + PAGE UP
  2. CTRL+ PAGE DOWN

Vấn đề ở chỗ là tổ hợp phím này chỉ di chuyển qua từng tab một theo thứ tự, vì vậy nếu bạn muốn chuyển từ tab #2 đến tab # 9 thì phải thực hiện lại thao tác đến 7 lần.

Giới Thiệu Tổ Hợp Phím ALT+ ` (Dấu Huyền)

Vì trong Excel dường như không tồn tại tổ hợp phím nào giúp di chuyển giữa các tab, nên chúng ta sẽ lập trình mã VBA để thực hiện chức năng này.

Với VBA, bạn có thể ấn tổ hợp phím ALT+ ` ( kí hiệu dấu huyền này ở ngay trên phím TAB trên bàn phím) khi thao tác với Excel Worksheet tương tự như khi sử dụng ALT+TAB với các cửa sổ chương trình. Mã này được đặt tên là : TabBack.

Thêm Mã Macro Tabback

Hướng dẫn dưới đây sẽ chỉ bạn từng bước làm thế nào để thêm mã VBA vào Personal Macro file của mình để tổ hợp phím này hoạt động khi bạn sử dụng Excel.

Tạo một Personal Macro File

Đây là các bước để tạo một Personal Macro File

  1. Đi đến tab View
  2. Chọn mũi tên chỉ xuống ở Macro và chọn Record Macro…
  3. Trong phần Store Macro In chọn Persial Macro Workbook
  4. Nhấn OK
  5. Ấn chọn một ô trong trang tính
  6. Quay trở lai chọn mũi tên chỉ xuống ở Macro và chọn Stop Recording

Vậy là Excel đã tạo một Personal Macro file và nó sẽ tự động mở trên nền mỗi khi bạn dùng Excel. Bây giờ hãy cùng copy tính năng “tab back”.

Đầu tiên, bạn cần mở Visual Basic Editor trong Excel. Có thể mở bằng tổ hợp phím ALT+F11

Chèn ThisWorkbook Code

Trước tiên, bạn cần thêm một macro đã được kích hoạt chương trình tại workbook-level trong Personal Macro workbook của mình. Điều này đảm bảo rằng khi mở Excel, tổ hợp phím tắt TabBack sẽ sẵn sàng hoạt động.

  1. Mở rộng XLSB bằng cách click vào kí hiệu thêm bên cạnh file name trong Project Explorer (CTRL + R)
  2. Trong tệp Microsoft Excel Objects, click đúp chuột vào ThisWorkbook
  3. Dán mã VBA từ bài viết này vào vùng coding của ThisWorkbook

Bạn có thể copy mã trên màn hình chụp ở đây:

Private Sub Workbook_Open()
‘PURPOSE: Run code when this workbook is opened
‘SOURCE: www.TheSpreadsheetGuru.com’Run the TabBack macro
Call TabBack_RunEnd Sub

Chèn mã Module

Tiếp theo, cần thêm mã VBA vào một module. Đây là nơi bạn sẽ cài đặt tổ hợp phím tắt và thi hành lệnh di chuyển qua lại giữa các trang tính.

  1. Trong tệp Module, click đúp chuột vào Module tên là Macro1 và đổi tên thành TabBack ( dùng phím tắt F4 để hiện cửa sổ Properties của Mcaro 1)
  2. Click đúp chuột vào module TabBack trong cửa sổ Project
  3. Xóa các mã tạp được ghi lại khi lần đầu bạn tạo Personal Macro workbook
  4. Dán mã VBA từ bài viết này vào vùng coding của Module TabBack.

Bạn có thể copy mã trên màn hình chụp ở đây:

Dim TabTracker As New TabBack_ClassSub TabBack_Run()
‘PURPOSE: Initiate Tab tracking and shortcut key trigger
‘SOURCE: www.TheSpreadsheetGuru.com‘Enable TabTracker class
Set TabTracker.AppEvent = Application‘Call ToggleBack macro when user keys alt + `
Application.OnKey “%`”, “ToggleBack”End SubSub ToggleBack()
‘PURPOSE: Go Back to Previous Worksheet
‘SOURCE: www.TheSpreadsheetGuru.com

With TabTracker
On Error Resume Next
Workbooks(.WorkbookReference).Worksheets(.SheetReference).Activate
On Error GoTo 0
End With

End Sub

Chèn mã Class Module

Trong phần cuối cùng, bạn cần tạo một Class Module

  1. Click chuột phải vào tệp Module
  2. Đến Insert và chọn Class Module

Khi Class Module mới được tạo, có một vài bước nữa cần thực hiện như sau:

  1. Trong tệp Class Modules, click chuột phải vào Class tên là Class1 và đổi tên thành TabBack_Class (dùng phím tắt F4 để hiện cửa sổ Properties của Class1)
  2. Click đúp chuột vào TabBack trong cửa sổ Project
  3. Dán mã VBA từ bài viết này vào vùng coding của TabBack_Class Class Module
  4. Lưu Personal Macro file của bạn

Bạn có thể copy mã trên màn hình chụp ở đây:

Public WithEvents AppEvent As Application
Public SheetReference As String
Public WorkbookReference As StringPrivate Sub AppEvent_SheetDeactivate(ByVal Sh As Object)
‘PURPOSE: Store active worksheet information before leaving it
‘SOURCE: www.TheSpreadsheetGuru.comWorkbookReference = Sh.Parent.Name
SheetReference = Sh.NameEnd SubPrivate Sub AppEvent_WorkbookDeactivate(ByVal Wb As Workbook)
‘PURPOSE: Store active worksheet information before closing workbook
‘SOURCE: www.TheSpreadsheetGuru.comWorkbookReference = Wb.Name
SheetReference = Wb.ActiveSheet.NameEnd Sub

Khởi chạy Macro TabBack

Bây giờ tất cả các mã VBA đã được dán và lưu lại, bạn có thể thoát khỏi Visual Basic Editor. Để bắt đầu sử dụng tổ hợp phím tắt TabBack, bạn chỉ cần đơn giản khởi động lại Excel.