Сохранение настроек печати с сохранением файла VBA - PullRequest
0 голосов
/ 04 октября 2018

Проблема: при сохранении версии файла Excel с только значениями параметры печати для одной страницы, по-видимому, сбрасываются (стираются).Мне нужно сохранить эти настройки, в противном случае мне придется заново вставить код для установки области печати, масштабирования и т. Д. В файл для клиента, в котором мы пытаемся уменьшить / исключить макросы.Команда для преобразования значений ячеек в значения:

Sub ConvertAllSheetsToValues_inConvertToValuesModule()
Application.ScreenUpdating = False
Application.EnableEvents = False
Application.Calculation = xlCalculationManual

Dim sh As Worksheet

For Each sh In ActiveWorkbook.Worksheets

    sh.Select
    sh.Unprotect
        Cells.Select
        Selection.Copy
        Selection.PasteSpecial Paste:=xlPasteValues
        ActiveSheet.Select
        Cells.Interior.ColorIndex = xlNone  'Remove shading
        Application.CutCopyMode = False
        Range("A1").Select
        Application.GoTo Reference:=Range("A1"), Scroll:=True    
'Position at top
        DoEvents
Next sh
Application.Calculation = xlCalculationAutomatic
End Sub

Код для сохранения рабочей книги после ее «удаления» до минимального количества вкладок, и VBA включает этот раздел:

'Save Workbook
WkbName = Left(ThisWorkbook.Name, Len(ThisWorkbook.Name) - 5) & " - 
VALUES"
Application.DisplayAlerts = False  
ActiveWorkbook.SaveAs Filename:=ThisWorkbook.Path & "\" & WkbName & 
".xlsb", FileFormat:=xlExcel12, CreateBackup:=False

Я (снова) пройдусь по коду, чтобы увидеть, удаляются ли когда-нибудь настройки печати для рассматриваемого листа, но я еще не нашел этот набор команд!

Спасибо всем!

1 Ответ

0 голосов
/ 04 октября 2018

Ложная тревога!Коллега отметил, что код преобразования в значения для рассматриваемого листа не может уничтожить параметры печати.Оказалось, что мой код настроек печати был On Error Перейти к 1 1: Выйти из Sub перед продолжением настройки параметров принтера.

Я не уверен, почему (пока не так хорош в отладке), но, видимо, VBAувидел ошибку (хотя debug.print Error был пустым, как и MsgBox err.number), и настройки принтера никогда не устанавливались!Я закомментировал приведенный выше код, вставил «On Error Resume Next», и он заработал.

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