How to specify date or datetime format in header or footer?
Normally, when you insert date or time into the header or footer with the &[Date] or &[Time] code, the date or time format is based on the regional settings controlled by Windows. In this case, how could you change the date or date time format to your own need in header or footer as following screenshot shown?
Specify date or date time format in header or footer with VBA code
Here, I will introduce some simple VBA code for you to solve this task in Excel, please do as follows:
1. Activate your worksheet which you want to insert and format the date in header or footer, and then click Page Layout button on the lower right corner of the workbook to enable the page layout view, see screenshot:
2. Hold down the ALT + F11 keys in Excel to open the Microsoft Visual Basic for Applications window.
3. Click Insert > Module, and paste the following code in the Module Window.
VBA code: Insert and format date in header or footer:
ActiveSheet.PageSetup.CenterHeader = Format(Date, "mmmm dd, yyyy")
Note: In the above code, you can change the CenterHeader to LeftHeader, CenterFooter…, and the date format mmmm dd, yyyy also can be changed as you need.
4. And then press F5 key to run this code, and your specified date format has been inserted into the header or footer at once. See screenshot:
Tips: If you want to insert your own date time format into the header or footer, please apply the below code:
ActiveSheet.PageSetup.CenterHeader = Format(Now, "MMMM DD, YYYY HH:MM:SS")
And you will get the following result:
The Best Office Productivity Tools
Kutools for Excel Solves Most of Your Problems, and Increases Your Productivity by 80%
Reuse: Quickly insert complex formulas, charts and anything that you have used before; Encrypt Cells with password; Create Mailing List and send emails...
Super Formula Bar (easily edit multiple lines of text and formula); Reading Layout (easily read and edit large numbers of cells); Paste to Filtered Range...
Select Duplicate or Unique Rows; Select Blank Rows (all cells are empty); Super Find and Fuzzy Find in Many Workbooks; Random Select...
Exact Copy Multiple Cells without changing formula reference; Auto Create References to Multiple Sheets; Insert Bullets, Check Boxes and more...
Extract Text, Add Text, Remove by Position, Remove Space; Create and Print Paging Subtotals; Convert Between Cells Content and Comments...
Super Filter (save and apply filter schemes to other sheets); Advanced Sort by month/week/day, frequency and more; Special Filter by bold, italic...
Combine Workbooks and WorkSheets; Merge Tables based on key columns; Split Data into Multiple Sheets; Batch Convert xls, xlsx and PDF...
More than 300 powerful features. Supports Office/Excel
2007-2019 and 365. Supports all languages. Easy deploying in your enterprise or organization. Full features
30-day free trial. 60-day money back guarantee.
I use a dynamic print range in my spreadsheet and generate PDFs. Oddly enough, when I execute the above VBA code snippet, it resets the dynamic print range for my current worksheet to a static range. Is there any way to avoid that?