Vba 循环更改工作表页面设置/打印区域
我已经编译了一个Excel工作簿,其中包含来自多个地方的多张工作表。问题是它们都有不同的页面设置、打印区域等。打印区域是主要内容,因此我希望在VBA中设置一个循环,遍历文档中的所有页面,并将打印区域更改为“适合一页”。下面是我创建并正在处理的东西,它在VBA中运行,但实际上什么都没有发生?:/。还有一种方法可以集中在页面中吗?所以不只是适合页面,而是适合页面并居中Vba 循环更改工作表页面设置/打印区域,vba,excel,Vba,Excel,我已经编译了一个Excel工作簿,其中包含来自多个地方的多张工作表。问题是它们都有不同的页面设置、打印区域等。打印区域是主要内容,因此我希望在VBA中设置一个循环,遍历文档中的所有页面,并将打印区域更改为“适合一页”。下面是我创建并正在处理的东西,它在VBA中运行,但实际上什么都没有发生?:/。还有一种方法可以集中在页面中吗?所以不只是适合页面,而是适合页面并居中 Sub WsLoop() Dim ws As Worksheet For Each ws In ActiveWorkbo
Sub WsLoop()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
With ws.PageSetup
.Orientation = xlLandscape
.FitToPagesWide = 1
.FitToPagesTall = 1
End With
Next
End Sub
.Orientation
对我很有用。你使用
ActiveWorkbook
可能是问题所在;可能是选择了一个
与您预期的工作簿不同。请尝试使用工作簿名称来
选择它.FitToPagesWide
和.FitToPagesTall
正常工作,请将
在它们之前执行以下操作:.Zoom=False
.center横向
和.center纵向
属性
PageSetUp
对象应该可以正常工作
斯科特我在Excel 2010中试用过,效果很好。对于
.FitToPagesWide
和.FitToPagesTall
,您只需单击“文件”菜单上的“打印”按钮,就不会看到填充的文件;如果单击窗格底部左侧子菜单和右侧预览之间的“页面设置”链接,您将看到它们已填充。我几乎可以肯定您需要激活页面才能使用PageSetup
。因此,在每个ws…行的之后放置一个ws.Activate
。有关居中,请参见垂直居中
和水平居中选项(将它们设置为True
),感谢您提供的提示,我们将立即试一试,看看它是否有效:)将让您了解它的运行情况