我有包含更改某些.PageSetup变量的代码。
我在使用此代码时遇到了问题
Sub Test()
Dim ws as Worksheet
Set ws = ActiveSheet
With ws.PageSetup
.Orientation = xlLandscape
End With
End Sub
这将出错,但是如果我在运行.Orientation
之前暂停代码并转到“打印预览”,然后尝试运行它,一切正常。
.PageSetup功能似乎需要先加载打印机设置才能执行。我不知道如何使用VBA做到这一点。
我正在从Access DB VBA运行它。它导出一个表,然后创建一个新的Excel应用程序以使用
打开它Dim xlApp as Excel.Application
set xlApp = New Excel.Application
从历史上看,只要加载了Excel参考库,我在此处编写的任何VBA在Access中的工作方式都将与在Excel中相同。
但是为了比较,当我在运行VBA的Excel文件中时也遇到了这个问题,它只是不一致,所以我从来没有弄清楚这个问题可能是什么。但是,只要我遇到问题,解决方案总是总是先选择“打印预览”。
这是我在特定宏上看到的错误代码:
错误号:1004
错误说明:无法设置PageSetup类的Orientation属性
宏在进入Excel导出之前会进行大量查询和表更新。此外,错误消息似乎与1004数字相当通用。
答案 0 :(得分:0)
在使用页面设置之前,请尝试关闭Application.PrintCommunication,然后再将其重新打开。像这样:
Application.PrintCommunication = False
With ws.PageSetup
.Orientation = xlLandscape
End With
Application.PrintCommunication = True
那可能只是将错误转移到重新打开打印通信的那一行上
答案 1 :(得分:0)
您可以尝试将xlLandscape替换为值2。 看看xlPageOrientation enumeration (Excel)