Код работает в VBA для Excel 2013, но это ошибки в Excel 2016 - PullRequest
0 голосов
/ 24 мая 2018

Следующий код отлично работает в Excel 2013. Наш ИТ-специалист установил для нас новый компьютер с Excel 2016. Теперь при открытии файла я получаю сообщение об ошибке «Ошибка во время выполнения« 1004 »: невозможно установить свойство CenterHeader дляPageSetup class "

Когда я пытался записать макрос, чтобы увидеть, что 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

1 Ответ

0 голосов
/ 25 мая 2018

Перенесено из моего комментария после того, как OP подтвердил, что оно работает.

Я подозреваю, что эта проблема связана с проблемами вашего принтера.Как правило, вы не можете выполнять какие-либо действия по настройке страницы в VBA, если принтеры не работают должным образом с установленными драйверами.Посмотрите, сможет ли ИТ-служба установить Office 2016 на компьютер с работающими принтерами и Office 2013, где этот код уже работает.Либо попробуйте установить основной принтер по умолчанию, если на нем уже установлены драйверы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...