Skye có ba ô trên một trang tính quan trọng. Một ô chứa ngày bắt đầu, ô thứ hai chứa ngày kết thúc và ô thứ ba chứa tổng số giao dịch giữa các ngày đó. Anh ấy muốn có một footer cho trang in kết hợp động ba phần dữ liệu này. Anh ấy tự hỏi liệu có cách nào để đưa công thức vào footer để nó có thể phản ánh những giá trị này không.

Không có cách cài sẵn nào để thực hiện việc này trong Excel vì không thể nhập công thức vào chân trang; chúng không được chương trình công nhận là công thức.

Tuy nhiên, bạn có thể sử dụng macro để đặt chân trang của mình. Giả sử, vì lợi ích của phương pháp này, ngày bắt đầu của bạn được chứa trong ô E1, ngày kết thúc của bạn nằm trong ô E2 và tổng số giao dịch của bạn nằm trong ô E3. Trong trường hợp đó, bạn có thể sử dụng macro như sau:

Private Sub Workbook_BeforePrint(Cancel As Boolean)

Dim sTemp As String

With Worksheets("Sheet1")

' Set wording for date range         sTemp = .Range("E1").Text & " through " & .Range("E2").Text         sTemp = sTemp & " (" & .Range("E3").Text & ")"

.PageSetup.CenterFooter = sTemp     End With End Sub

Có một số điều cần lưu ý trong macro này. Trước hết, macro chỉ đặt thông tin chân trang trong trang tính có tên là Sheet1, mặc dù bạn có thể thay đổi tên trang tính này thành bất cứ thứ gì bạn cần. Thứ hai, lưu ý rằng thuộc tính .Text được sử dụng thay vì thuộc tính .Value. Thực tế có ba cách bạn có thể tham khảo nội dung ô, như được hiển thị ở đây:

sTemp = Worksheets("Sheet1").Range("E1")

sTemp = Worksheets("Sheet1").Range("E1").Value sTemp = Worksheets("Sheet1").Range("E1").Text

Hai cách tiếp cận đầu tiên là tương đương nhau; họ đặt sTemp bằng với nội dung của ô. Cách tiếp cận thứ ba là khác nhau; nó đặt sTemp bằng với văn bản được định dạng của ô. Nói cách khác, sTemp sẽ bằng với bất kỳ thứ gì có trong ô E1, vì nó được định dạng trong ô. Vì bạn đang làm việc với ngày và tổng, đây là phương pháp bạn muốn sử dụng, vì vậy nó là những gì đã được sử dụng trong macro.

Thứ ba, macro kết thúc việc thiết lập footer trong biến sTemp. Như đã viết, macro sẽ tạo một chân trang giống như sau:

1 Mar 2016 through 15 Mar 2016 ($1,234.56)

Một lần nữa, giao diện thực tế phụ thuộc vào định dạng trong các ô E1, E2 và E3. Macro thêm từ “qua” và đặt dấu ngoặc đơn xung quanh tổng số giao dịch. Bạn có thể sửa đổi các phần tử bổ sung này trực tiếp trong macro.

Thứ tư, macro chỉ định chuỗi sTemp được định dạng (chân trang của bạn) vào vị trí trung tâm trong chân trang cho trang tính. Nếu muốn footer ở nơi khác, bạn có thể chỉ cần thay đổi thuộc tính .CenterFooter thành .LeftFooter hoặc .RightFooter.

Cuối cùng, bạn cần lưu ý rằng macro này được mô tả để được thêm vào mô-đun ThisWorkbook. Nó được chạy, tự động, ngay trước khi sổ làm việc được in. Tuy nhiên, nó không được kích hoạt bằng cách xem trang tính trong Xem trước khi in, vì vậy bạn không thể tin tưởng vào những gì bạn có thể thấy trước khi thực sự in.

_Lưu ý: _

Nếu bạn muốn biết cách sử dụng các macro được mô tả trên trang này (hoặc trên bất kỳ trang nào khác trên trang ExcelTips), tôi đã chuẩn bị một trang đặc biệt bao gồm thông tin hữu ích.

ExcelTips là nguồn của bạn để đào tạo Microsoft Excel hiệu quả về chi phí.

Mẹo này (559) áp dụng cho Microsoft Excel 2007, 2010, 2013 và 2016.