Hướng dẫn cách thay đổi nội dung header trong Excel theo ý muốn bằng VBA

Khi tìm hiểu về Header và Footer trong Excel, chúng ta thường thấy rằng việc đưa nội dung vào Header và Footer là khá cứng nhắc. Muốn thay đổi nội dung này khá mất thời gian. Đặc biệt chúng ta không thể sử dụng công thức tham chiếu trong Header, Footer. Vậy làm thế nào để thay đổi nhanh nội dung tiêu đề trong Excel theo ý muốn? Tìm hiểu ngay qua bài viết này:

Tính năng của Header, Footer trong Excel

Nhắc lại một chút về cách tạo Header, Footer trong Excel nếu bạn chưa biết: Có 3 cách tạo Header, Footer trong bài viết

Hướng dẫn cách chèn logo vào Header của trang in trong Excel

Và một số tính năng về Header, Footer như sau:

  • Header và Footer đều có 3 phần Left – Middle – Right tương ứng với vị trí đặt tiêu đề cho trang in.
  • Có thể nhập trực tiếp Nội dung ở dạng Văn bản trong Đầu trang hoặc Chân trang
  • Có thể chèn ảnh / logo và thay đổi kích thước và vị trí của hình ảnh trong Header, Footer
  • Ở chế độ xem bình thường (chế độ xem bình thường) sẽ Không thể nhìn thấy Đầu trang, Chân trang trong Excel. Chỉ nhìn thấy trong chế độ Chế độ xem bố cục trang
  • Khi chọn Header / Footer, một thẻ sẽ xuất hiện Công cụ / Thiết kế Đầu trang & Chân trang để thiết kế cho Header / Footer.
  • Không thể viết công thức hoặc tham chiếu tọa độ trong Đầu trang, Chân trang
>>> Xem thêm:  Hướng dẫn cách vẽ biểu đồ quản lý dự án trong Excel chi tiết nhất

Với những đặc điểm trên, chúng ta có thể thấy Header và Footer trong Excel có những hạn chế nhất định. Khi muốn thay đổi nội dung trong Header / Footer, chúng ta thường phải xóa nội dung cũ nhiều lần bằng nội dung mới (hoặc gõ lại văn bản). Điều này có thể mất rất nhiều thời gian, đặc biệt là khi bạn phải làm việc với các bảng tính yêu cầu Header / Footer thay đổi liên tục.

Tải game crack việt hoá tại: https://daominhha.com

Cách điều khiển Header, Footer qua VBA

May mắn thay, chúng ta hoàn toàn có thể khắc phục nhược điểm nêu trên bằng cách sử dụng VBA trong Excel. Nếu bạn chưa biết VBA trong excel là gì thì có thể tham khảo bài viết sau:

Khóa học về lập trình VBA trong Excel

Lệnh điều khiển Header / Footer trong VBA như sau:

Tên trang tính + Thuộc tính Thiết lập trang + Vị trí đầu trang =….

Khi chúng ta muốn gán nội dung trong ô A1 trong Sheet1 cho phần bên trái của Header của Sheet1, chúng ta viết lệnh sau:

Sheet1.PageSetup.LeftHeader = Sheet1.Range (“A1”)

Thứ tự thực hiện có thể được mô tả như sau:

  • Bước 1: nhập nội dung vào ô A1 Sheet1 là “Excel Online Learning Co., Ltd”
  • Bước 2: trong VBA, tạo một Mô-đun mới và tạo một Phụ mới trong đó, có tên ChangeHeader chứa lệnh trên
  • Bước 3: nhấn nút RUN (hình tam giác màu xanh – phím tắt F5)
  • Bước 4: kiểm tra kết quả ở phần bên trái của Header trong Sheet1
>>> Xem thêm:  Cách tính số ngày công, ngày nghỉ, ngày làm việc trong Excel

Rất đơn giản đúng không. Trong đối tượng PageSetup, có một số thuộc tính về Header / Footer như sau:

  • HeaderMargin / Footer Margin: lề của Đầu trang / Chân trang
  • LeftHeader / LeftFooter: nội dung (văn bản) ở vị trí bên trái của Header / Footer
  • LeftHeaderPicture / LeftFooterPicture: phần hình ảnh ở vị trí bên trái của Header / Footer
  • CenterHeader / CenterFooter: nội dung (văn bản) ở vị trí giữa của Header / Footer
  • CenterHeaderPicture / CenterFooterPicture: phần hình ảnh ở giữa Header / Footer
  • RightHeader / RightFooter: nội dung (văn bản) ở đúng vị trí của Header / Footer
  • RightHeaderPicture / RightFooterPicture: phần hình ảnh ở vị trí bên phải của Header / Footer

Như vậy chúng ta có thể quản lý chi tiết cho 2 loại đối tượng là Text và Picture ở cả 3 phần Left-Center-Right của Header hoặc Footer.

Tùy theo mục đích mà chúng ta có thể lựa chọn từng đối tượng phù hợp để làm việc.

Đặt các sự kiện liên quan đến Đầu trang / Chân trang trước khi in

Header / Footer thường được sử dụng liên quan đến việc in trong Excel. Vì vậy khi lập trình VBA cho đối tượng này, chúng ta thường làm việc với sự kiện BeforePrint (trước khi thực hiện lệnh in).

Ý nghĩa của nó là khi chúng ta thực hiện lệnh in (Print) trong Excel, trước khi máy in hoạt động, VBA sẽ can thiệp để thực hiện một việc mà chúng ta đã lập trình trước.

Ví dụ:

Bạn muốn trước khi in trong Sheet1, phần bên trái của Header trong Sheet đó sẽ được lấy theo vị trí của ô A1 (vẫn nằm trong Sheet1)

>>> Xem thêm:  Hàm LOOKUP và công thức ví dụ trong Excel 2016 2013 2010 2007 2003

Sự kiện được thiết lập như sau:

  • Trong cửa sổ Dự án, chọn để ThisWorkbook (vì sự kiện in có liên quan đến toàn bộ sổ làm việc, không chỉ một trang cụ thể)
  • Phần đối tượng đã chọn Sách bài tập, chọn sự kiện liên quan đến Workbook dưới dạng BeforePrint
  • Trong Private Sub Workbook_BeforePrint Vừa tạo, nhập mã gán nội dung Header theo nội dung vào ô A1 (lưu ý đặt tên Sheet trước các đối tượng)

Như vậy sự kiện đã được thiết lập. Bây giờ bạn có thể kiểm tra lại khi thay đổi nội dung trong ô A1 trong Sheet1, sau đó nhấp vào lệnh Print để xem Header có được cập nhật hay không.

Chúc may mắn!

Tham khảo:

Tìm hiểu về ý nghĩa và cách sử dụng các sự kiện trong VBA Excel

Bắt sự kiện thay đổi lựa chọn trang tính trong VBA

Kích hoạt macro VBA khi giá trị trong ô thay đổi

Nguồn : Blog hocexcel