James,
If you want a solution that provides EXACTLY what you require - Month Year - e.g. April 2003, then the following will work...
Sub SetPrintHeadings()
h_l = Range("hdr_l"

.Value
h_c = Range("hdr_c"

.Value
h_r = Range("hdr_r"

.Value
With ActiveSheet.PageSetup
.LeftHeader = h_l
.CenterHeader = h_c
.RightHeader = h_r
End With
End Sub
The above example demonstrates that you can, if desired, pick up from your worksheet any one or all three of the headers (left, center, right).
For this example, I've created 3 range names for 3 separate cells on a separate sheet (out of the way). The names are: hdr_l, hdr_c, and hdr_r. You will of course need to create the same range names to fit with the VBA routine.
In one of these named cells, copy the following formula...
=CHOOSE(MONTH(TODAY()),"January","February","March","April","May","June","July","August","September","October","November","December"

&" "&FIXED(1900+(YEAR(TODAY())-1900),0,TRUE)
I hope this helps. Please advise as to how it fits.
Regards, ...Dale Watson dwatson@bsi.gov.mb.ca