Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 循环更改工作表页面设置/打印区域_Vba_Excel - Fatal编程技术网

Vba 循环更改工作表页面设置/打印区域

Vba 循环更改工作表页面设置/打印区域,vba,excel,Vba,Excel,我已经编译了一个Excel工作簿,其中包含来自多个地方的多张工作表。问题是它们都有不同的页面设置、打印区域等。打印区域是主要内容,因此我希望在VBA中设置一个循环,遍历文档中的所有页面,并将打印区域更改为“适合一页”。下面是我创建并正在处理的东西,它在VBA中运行,但实际上什么都没有发生?:/。还有一种方法可以集中在页面中吗?所以不只是适合页面,而是适合页面并居中 Sub WsLoop() Dim ws As Worksheet For Each ws In ActiveWorkbo

我已经编译了一个Excel工作簿,其中包含来自多个地方的多张工作表。问题是它们都有不同的页面设置、打印区域等。打印区域是主要内容,因此我希望在VBA中设置一个循环,遍历文档中的所有页面,并将打印区域更改为“适合一页”。下面是我创建并正在处理的东西,它在VBA中运行,但实际上什么都没有发生?:/。还有一种方法可以集中在页面中吗?所以不只是适合页面,而是适合页面并居中

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
  • 在Excel 2010中,
    .Orientation
    对我很有用。你使用
    ActiveWorkbook
    可能是问题所在;可能是选择了一个 与您预期的工作簿不同。请尝试使用工作簿名称来 选择它
  • 要使
    .FitToPagesWide
    .FitToPagesTall
    正常工作,请将 在它们之前执行以下操作:
    .Zoom=False
  • .center横向
    .center纵向
    属性
    PageSetUp
    对象应该可以正常工作 斯科特

  • 我在Excel 2010中试用过,效果很好。对于
    .FitToPagesWide
    .FitToPagesTall
    ,您只需单击“文件”菜单上的“打印”按钮,就不会看到填充的文件;如果单击窗格底部左侧子菜单和右侧预览之间的“页面设置”链接,您将看到它们已填充。

    我几乎可以肯定您需要激活页面才能使用
    PageSetup
    。因此,在每个ws…行的
    之后放置一个
    ws.Activate
    。有关居中,请参见垂直居中
    和水平居中选项(将它们设置为
    True
    ),感谢您提供的提示,我们将立即试一试,看看它是否有效:)将让您了解它的运行情况