返回列表 上一主題 發帖

[發問] 群組設定版面

回復 1# PJChen
1.因為程式是執行Macro_T的Sheet,所以庫存表不會變更,將ActiveWorkbook改為WB
2.附件內程式的Workboos & sheets名稱與實際不符,將Macro.xlsm改為Macro_T.xlsm,VB改為VBA
試試看是否符合需求

Sub 群組設定版面()
Dim Wb As Workbook, xActSheet As Worksheet, j As String, xi As String, x As Double, i As Long
Dim k1 As String, k2 As String, k3 As String, k4 As String, k5 As String, k6 As String
    Application.ScreenUpdating = False
    Application.DisplayAlerts = False '在程序執行過程中使出現的警告框不顯示
    Application.Calculation = xlManual     '手動計算
    Set Wb = Workbooks(Workbooks("Macro_T.xlsm").Worksheets("VBA").Range("P1").Value) '儲存格的值為檔案名稱

    j = Workbooks("Macro_T.xlsm").Worksheets("VBA").Range("P2").Value
    k1 = Workbooks("Macro_T.xlsm").Worksheets("VBA").Range("P3").Value
    k2 = Workbooks("Macro_T.xlsm").Worksheets("VBA").Range("P4").Value
    k3 = Workbooks("Macro_T.xlsm").Worksheets("VBA").Range("P5").Value
    k4 = Workbooks("Macro_T.xlsm").Worksheets("VBA").Range("P6").Value
    k5 = Workbooks("Macro_T.xlsm").Worksheets("VBA").Range("P7").Value
    k6 = Workbooks("Macro_T.xlsm").Worksheets("VBA").Range("P8").Value
    x1 = Workbooks("Macro_T.xlsm").Worksheets("VBA").Range("P9").Value
    x2 = Workbooks("Macro_T.xlsm").Worksheets("VBA").Range("P10").Value
    x = Workbooks("Macro_T.xlsm").Worksheets("VBA").Range("P11").Value
   
        For i = 2 To Wb.Sheets.Count   '在工作表中循環
        Wb.Sheets(i).Activate   

      With Wb.ActiveSheet.PageSetup
        .PrintArea = j
        .TopMargin = Application.InchesToPoints(k1)   '上邊界
        .BottomMargin = Application.InchesToPoints(k2)  '下邊界
        .LeftMargin = Application.InchesToPoints(k3)  '左邊界
        .RightMargin = Application.InchesToPoints(k4)  '右邊界
        .HeaderMargin = Application.InchesToPoints(k5) '頁首
        .FooterMargin = Application.InchesToPoints(k6)  '頁尾

        .Zoom = x '列印縮放
        .Orientation = xlLandscape   '橫向列印
     End With
        Next
   ' End With
        Application.ScreenUpdating = True   '打開屏幕更新
        Application.Calculation = xlAutomatic    '自動計算
   
End Sub

TOP

回復 3# PJChen

問題一:程式排版沒做好,造成誤解
For-Next是從第二個工作表開始執行,循環至Wb.Sheets.Count後停止
每一次循環中執行With-End With作業

For i = 2 To Wb.Sheets.Count '在工作表中循環
      Wb.Sheets(i).Activate
      With Wb.ActiveSheet.PageSetup
省略....
     End With
Next
問題二:這個問題一開始不清楚用途,之後看有先進回覆,就沒在研究了,後續有時間再研究看看

TOP

        靜思自在 : 【停滯不前,終無所得】人都迷於尋找奇蹟,因而停滯不前;縱使時間再多、路再長,也了無用處,終無所得。
返回列表 上一主題