Trần Văn Huệ
Trần Văn Huệ
Thảo luận 0 thảo luận
Vỗ tay 0 vỗ tay
Lượt xem 482 lượt xem

Cách chạy mã macro trước khi in, kích vào siêu liên kết hoặc dựa trên giá trị thả xuống trong Excel

Sep 28 2020

Chạy mã macro tự động trước khi in trong Excel 

Trong khi làm việc với bảng dữ liệu Excel, thay vì mỗi lần cần thực hiện nhiệm vụ lại phải chạy mã macro để thay đổi được áp dụng rồi mới in tài liệu ra mất nhiều thời gian. Trong phần này Gitiho sẽ hướng dẫn các bạn cách chạy mã macro tự động trước khi in trong Excel.

Dưới đây là một đoạn mã đơn giản có thể giúp bạn hoàn thành công việc này trong Excel.

Bước 1: Mở một bảng tính Excel.

Bước 2: Nhấn tổ hợp phím Alt + F11 hoặc chọn mục Visual Basic trong thẻ Developer để mở cửa sổ Microsoft Visual Basic for Applications (VBA).

Bước 3: Kích đúng vào ThisWorkbook trong ngăn VBAProject bên trái, rồi sao chép và dán mã VBA bên dưới vào modul trống ở khung bên phải. 

Private Sub Workbook_BeforePrint(Cancel As Boolean)
     Call MyMacro
End Sub


Chạy mã macro trước khi in, kích vào siêu liên kết hoặc giá trị thả xuống trong Excel

Lưu ý: Trong đoạn mã trên, bạn có thể thay đổi tên macro theo nhu cầu của mình.

Bước 4: Lưu và đóng cửa sổ mã VBA, bây giờ sau khi bạn bấm vào nút Print để in một sheets hoặc cả file Excel, mã macro cụ thể sẽ được thực thi trước tiên, sau khi kết thúc mã, sheets hoặc nội dung của cả tệp Excel sẽ được in cùng một lúc.

Xem thêm: Hướng dẫn cách định dạng và in ấn trong Microsoft Word đơn giản nhất

Trong các hướng dẫn ở trên các mã macro sẽ được kích hoạt khi giá trị trong một ô hoặc một phạm vi ô thay đổi trong bảng tính Excel. Tuy nhiên bạn đã bao giờ thử chạy các macro chỉ bằng cách kích vào các siêu liên kết tương đối trong tệp Excel chưa? Dưới đây Gitihi sẽ hướng dẫn cách để bạn thực hiện. 

Bước 1: Mở tệp Excel mà bạn muốn thực hiện.

Bước 2: Tạo các siêu liên kết mà bạn muốn sử dụng để thực thi các mã macro bằng cách. Nhập nội dung vào một ô cần tạo siêu liên kết, tiếp theo truy cập vào menu Insert, rồi bấm nút Hyperlinks trên thanh công cụ của giao diện ribbon (hoặc bấm tổ hợp phím Ctrl +K).

Bước 3: Trong hộp thoại Insert hyperlink hiển thị, chọn tùy chọn Place in This Document, tiếp theo tại khung Tyle thẻ cell reference, nhập B6 và khung Text to display nhập Run Macro1, như hình dưới đây. 

Chạy mã macro trước khi in, kích vào siêu liên kết hoặc giá trị thả xuống trong Excel

Bước 4: Lặp lại bước trên để tạo các siêu liên kết khác mà bạn muốn sử dụng.

Chạy mã macro trước khi in, kích vào siêu liên kết hoặc giá trị thả xuống trong Excel

Bước 5: Sau đó kích chuột phải vào tên sheets có chứa các siêu liên kết bạn muốn sử dụng, rồi chọn View Code từ trình đơn ngữ cảnh.

Bước 6: Trong cửa sổ Microsoft Visual Basic for applications đã mở, sao chép và dán mã dưới đây vào modul trống ở bên phải.

Private Sub Worksheet_FollowHyperlink(ByVal Target As Hyperlink)
    If Target.Range.Address = "$B$6" Then
        Call Macro1
        End If
         If Target.Range.Address = "$B$8" Then
        Call Macro2
         End If
End Sub


Chạy mã macro trước khi in, kích vào siêu liên kết hoặc giá trị thả xuống trong Excel

Lưu ý: Trong đoạn mã trên, B6 và B8 là các ô chứa siêu liên kết bạn muốn sử dụng và Macro1 và Macro2 là tên mã macro. Nhưng tùy theo thực tế bạn đặt mà thay đổi cho đúng với vị trí của siêu liên kết cần thực hiện. 

Bước 7: Lưu và đóng cửa sổ mã VBA, bây giờ khi bạn kích vào siêu liên kết, mã macro cụ thể sẽ được thực thi cùng một lúc.

Xem thêm: Hướng dẫn cách tùy biến comment trong Excel bằng VBA (Phần 2)

Chạy mã macro tự động dựa trên giá trị được chọn từ danh sách thả xuống trong Excel 

Để chạy macro bằng cách bấm vào nút lệnh là một nhiệm vụ phổ biến trong Excel, nhưng bạn đã bao giờ thực thi các mã macro dựa trên giá trị được chọn từ danh sách thả xuống (Down List) chưa? 

Xem thêm: Hướng dẫn cách tạo danh sách chọn drop-down list trong Word

Có nghĩa là khi bạn chọn một mục từ danh sách thả xuống, macro cụ thể sẽ được kích hoạt cùng một lúc. Trong phần này của bài viết, Gitiho sẽ giới thiệu một đoạn mã hữu ích cho bạn để giải quyết công việc này.

Thực tế, không có cách nào trực tiếp để hoàn thành tác vụ này, nhưng mã VBA sau có thể giúp bạn:

Bước 1: Đầu tiên, hãy tạo một danh sách thả xuống khi bạn cần.

Chạy mã macro trước khi in, kích vào siêu liên kết hoặc giá trị thả xuống trong Excel

Bước 2: Sau đó kích chuột phải vào tên sheets có chứa trình đơn thả xuống bạn muốn sử dụng rồi chọn View Code.

Bước 3: Trong cửa sổ Microsoft Visual Basic for applications đã mở, sao chép và dán mã dưới đây vào modul trống ở bên phải.

Private Sub Worksheet_Change(ByVal Target As Range)
    If Not Intersect(Target, Range("E1")) Is Nothing Then
        Select Case Range("E1")
            Case "Insert Blank rows": Macro1
            Case "Hide All Sheets": Macro2
            Case "Convert to Date": Macro3
        End Select
    End If
    End Sub


Lưu ý: Trong đoạn mã trên, E1 là ô chứa danh sách thả xuống, hãy thay đổi tên macro và giá trị danh sách thả xuống theo file thực tế của bạn.Chạy mã macro trước khi in, kích vào siêu liên kết hoặc giá trị thả xuống trong Excel

Bước 4: Lưu và đóng cửa sổ mã VBA, bây giờ khi bạn chọn Insert Blank rows từ danh sách thả xuống, Macro1 sẽ được kích hoạt, tương tự như vậy nếu bạn có nhiều mã macro được đặt tên tương ứng với nhiều tùy chọn trong danh sách thả xuống.

Xem thêm: Hướng dẫn cách viết các toán tử so sánh trong VBA

Trên đây Gitiho vừa hướng dẫn các bạn các mã VBA đơn giản để chạy mã macro trước khi in, khi kích vào siêu liên kết hoặc dựa trên giá trị được chọn từ danh sách thả xuống trong Excel. Nếu các bạn biết thêm các đoạn mã VBA thú vị khác để thực hiện các tính năng tương tự như trên, hãy chia sẻ cùng chúng tôi thông qua comment ở phía dưới nhé. Chúc các bạn thành công!

Thời đại công nghệ 4.0 đang dần đi vào cuộc sống đòi hỏi mọi người phải tự trang bị kiến thức tin học cho phù hợp để có thể bắt kịp nhưng thay đổi nhanh chóng này. Chẳng ai khác ngoài bạn hiểu mình cần trang bị thêm kiến thức gì. Hãy tìm hiểu ngay TẠI ĐÂY những khóa học hấp dẫn, có tính thực tế cao của Gitiho và đăng ký nhận tư vấn ngay hôm nay. 


Cùng tham gia cộng đồng hỏi đáp về chủ đề Tin học văn phòng

Thảo luận 0 câu trả lời
Lượt xem 482 lượt xem
Vỗ tay vỗ tay

0 Bình 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