2016-03-23 41 views
0

我已經到了一個地步,我已經編譯了一個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 
+1

我幾乎可以肯定你需要激活頁面才能使用'PageSetup'。因此,在'For each ws ...'行之後放置一個'ws.Activate'。爲了居中查看'CenterVertically'和'CenterHorizo​​ntally'選項(將它們設置爲'True') –

+0

感謝您的提示,現在就給它一下,看看它是否有效:)會讓你知道它是如何進行的 – IIJHFII

回答

0
  1. .Orientation對我的作品在Excel 2010中您使用的 ActiveWorkbook可能是問題;它可能會選擇一個不同於您的預期的 不同的工作簿。嘗試使用工作簿名稱 選擇它。
  2. 對於.FitToPagesWide.FitToPagesTall工作,把下面的 他們面前:.Zoom = False
  3. .CenterHorizontallyPageSetUp對象的.CenterVertically性能沒有驚喜應該工作由 斯科特

提到我試圖在Excel中2010年和這個作品。對於.FitToPagesWide.FitToPagesTall,當您在「文件」菜單上單擊「打印」時,您不會看到它們被填充;如果您點擊左側子菜單和右側預覽之間的窗格底部的「頁面設置」鏈接,則會看到它們已填充。

相關問題