通过VBA文件保存保留打印设置

时间:2018-10-04 18:59:24

标签: excel vba printing settings

问题:当保存带有值的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 :(得分:0)

错误警报!一位同事指出,相关工作表的“转换为值”代码无法清除打印设置。原来我的打印设置代码有     错误转至1     1:退出子 在继续配置打印机设置之前。

我不确定为什么(还不能很好地调试),但是很明显,VBA看到了一个错误(尽管debug.print错误为空白,MsgBox err.number也为空白),并且打印机设置从未设置!我注释掉了上面的代码,放在“ On Error Resume Next”中,它起作用了。