代码在VBA for Excel 2013中工作,但在Excel 2016中出错

代码在VBA for Excel 2013中工作,但在Excel 2016中出错,excel,excel-2013,excel-2016,vba,Excel,Excel 2013,Excel 2016,Vba,以下代码在Excel 2013中运行良好。我们的IT人员使用Excel 2016为我们安装了一台新计算机。现在打开文件时,我收到一个错误“运行时错误'1004”:无法设置PageSetup类的CenterHeaderproperty” 当我试图录制一个宏以查看Excel 2016是否做了一些不同的事情时,代码看起来与此处相同,同样,这段代码在2013年仍然运行良好 Private Sub Workbook_Open() Dim Obj As Object AWb = Application.A

以下代码在Excel 2013中运行良好。我们的IT人员使用Excel 2016为我们安装了一台新计算机。现在打开文件时,我收到一个错误“运行时错误'1004”:无法设置PageSetup类的CenterHeaderproperty”

当我试图录制一个宏以查看Excel 2016是否做了一些不同的事情时,代码看起来与此处相同,同样,这段代码在2013年仍然运行良好

Private Sub Workbook_Open()
Dim Obj As Object

AWb = Application.ActiveWorkbook.Name
If AWb = "UCSB Service Form.xlsm" Then
 Application.ScreenUpdating = False
 Sheets("Form").Activate
 DateFormat = Format(Date, "mm/dd/yy;@")
 Range("F2") = DateFormat
 Range("F36") = DateFormat

 Cells.Validation.Delete

'Sets record number
 Record = "Pending"
 Range("H6") = "'" & Record

 ActiveSheet.PageSetup.CenterHeader = "Record: " & Record
         '<<< Debug indicates this line
         'Run-time error '1004': Unable to set the CenterHeaderproperty of the PageSetup class

'Open blank form

 Range("F3:F7").ClearContents
 Range("E9:F10").ClearContents
 Range("E12:F18").ClearContents
 Range("E20:F23").ClearContents
 Range("E26:F29").ClearContents
 Range("K2:K5").ClearContents
 Range("H4:I6").ClearContents
 Range("G9:J25").ClearContents
 Range("I27:I31").ClearContents
 Range("K27:K31").ClearContents
 Range("K27:K31").ClearContents
 Range("G34:I39").ClearContents
 Range("I40").ClearContents
 Range("K40").ClearContents
 Range("K33:K36").ClearContents

'Clear Highlighting

 Range("F3:F7").Interior.Color = xlNone
 Range("E9:F9").Interior.Color = xlNone
 Range("E12:F13").Interior.Color = xlNone
 Range("E14:F17").Interior.Color = xlNone
 Range("E18:F18").Interior.Color = xlNone
 Range("E20:F23").Interior.Color = xlNone
 Range("H4:I4").Interior.Color = xlNone

Application.ScreenUpdating = True
 Range("A1").Select
 Range("F3").Select
Application.ScreenUpdating = False

Range("H6") = "'" & Record

Set Obj = ActiveSheet.CommandButton1
Obj.Caption = "Save"

Call M_Lists.S_Lists

End If
'Updated 4/25/18
End Sub
Private子工作簿\u Open()
作为对象的Dim Obj
AWb=Application.ActiveWorkbook.Name
如果AWb=“UCSB服务表单.xlsm”,则
Application.ScreenUpdating=False
工作表(“表格”)。激活
DateFormat=格式(日期,“mm/dd/yy;”)
范围(“F2”)=日期格式
范围(“F36”)=日期格式
Cells.Validation.Delete
创纪录
记录=“待定”
范围(“H6”)=“'”和记录
ActiveSheet.PageSetup.CenterHeader=“记录:”&记录

“在OP确认它有效后从我的评论中迁移过来


我怀疑这个问题与您的打印机问题有关。通常,除非打印机在安装了驱动程序的情况下工作正常,否则无法在VBA中执行任何类型的页面设置操作。看看它是否能在一台有可用打印机的计算机上安装Office 2016,并在Office 2013上安装此代码。或者,如果主打印机已经安装了驱动程序,则尝试将其设置为默认值。

您的新计算机上是否安装了打印机?哦,哈哈,谢谢。是的,上面安装了打印机,我们在打印方面一直有问题。这真是一件奇怪的事情!我将主打印机设置为默认,现在一切正常!非常感谢。我把我的评论变成了回答。考虑点击旁边的复选标记,让其他人知道它解决了你的问题,以防他们遇到同样的问题!