将方向更改为 xlLandscape,无需首次打印预览

问题描述 投票:0回答:3

我的代码包括更改一些 .PageSetup 变量。

我在使用此代码时遇到问题

Sub Test()

    Dim ws as Worksheet
    
    Set ws = ActiveSheet
    
    With ws.PageSetup
        .Orientation = xlLandscape
    End With

End Sub

这会出错,但如果我在运行之前暂停代码并转到“打印预览”,然后尝试运行它,一切都会正常。

.PageSetup 功能似乎需要先加载打印机设置才能执行。我不知道如何用 VBA 做到这一点。

我从 Access DB VBA 运行它。它导出一个表,然后我创建一个新的 Excel 应用程序以使用打开它

.Orientation

从历史上看,只要我加载了 Excel 参考库,我在此处编写的任何 VBA 在 Access 中的工作方式与在 Excel 中的工作方式相同。 

但为了比较,我在运行 VBA 的 Excel 文件中也遇到了这个问题,它只是不一致,所以我从来没有弄清楚问题可能是什么。但每当我遇到问题时,解决方案总是先选择“打印预览”。

这是我在特定宏上收到的错误代码:

错误编号:1004

错误描述:无法设置PageSetup类的Orientation属性

宏在导出 Excel 之前会执行大量查询和表更新。此外,错误消息似乎与 1004 数字相当通用。

excel vba worksheet printers page-setup
3个回答
0
投票
Application.PrintCommunication

,然后再将其重新打开。像这样: Dim xlApp as Excel.Application set xlApp = New Excel.Application

不过,这可能只会将错误转移到重新打开打印通信的行上


0
投票
xlPageOrientation 枚举 (Excel)


0
投票

© www.soinside.com 2019 - 2024. All rights reserved.