VBA忽略PageSetup更改

我有一些VBA代码设置为表格名称,范围( prntRange )和方向( prntOrient )并打印结果,但它似乎像VBA忽略页面设置的命令。 这是一个快速的片段:

 For x = 1 To numPages Worksheets("Printing").Activate prntSheet = Cells(6 + (x - 1), 1) prntRange = Cells(6 + (x - 1), 2) prntOrient = Cells(6 + (x - 1), 3) Application.StatusBar = "Printing " & prntSheet & "..." Worksheets(prntSheet).Activate With ActiveSheet.PageSetup .PrintArea = False If prntOrient = "Portrait" Then .Orientation = xlPortrait Else .Orientation = xlLandscape End If .PrintArea = prntRange .Zoom = False .FitToPagesWide = 1 .FitToPagesTall = 1 End With ... 

这里有一个表格的例子:

 Sheet Name Range Orientation Example A1:J56 Portrait Example A1:J80 Landscape 

prntRange从范围拉, prntOrient从方向拉

基本上,我要找的是范例A1:J56的示例版本,然后是示例范围A1:J56的横向版本。 尽pipe被告知适合一个页面,但横向版本打印为两页。 无论是否有第一个条目,以及是否在Excel中手动重置打印设置,都会发生这种情况。

我已经尝试了上述四个命令的几乎所有排列,顺序似乎没有什么区别。 设置.PrintArea = False是我认为刷新打印区域可能会有帮助,但我不相信它。 如果我手动执行这些步骤,那么我可以毫无问题地将它变成所需的格式,但是这个macros的全部内容是我不必这么做的。

有没有人有任何想法我失踪?

提前致谢!

编辑:更准确的标题。

编辑2:每个人的请求更详细的,抱歉!

编辑3:展开代码以显示variables分配