2015-06-05 166 views
2

我想在VBA中創建一個宏,它將通過Access VBA格式化一個Excel工作表。我遇到了Access中的一些驚喜,它不會識別某些Excel VBA命令,如.Select,.Interior.Color.ActiveWindow.Zoom。我解決了前兩個問題,但有人可以幫助我將主動縮放設置爲90%?如何通過Access VBA在Excel中設置ActiveWindow.Zoom?

Sub ExcelMacro() 

Dim xlApp As Object 
Dim xlWB As Object 

filepath = "\\dom1...xlsm" 

Set xlApp = CreateObject("Excel.Application") 

xlApp.Workbooks.Open filepath 

xlApp.Visible = True 

xlApp.Application.DisplayAlerts = True 

Set xlWB = xlApp.ActiveWorkbook 

xlWB.Sheets(1).ActiveWindow.Zoom = 90 

    With xlWB.Sheets(1).Cells 
     .Font.Name = "Calibri" 
     .EntireColumn.Autofit 
    End With 

    With xlWB.Sheets(1).range("A1").Entirerow 
     .Interior.ColorIndex = 15 
     .Font.Bold = True 
    End With 

'xlApp.Application.DisplayAlerts = True 
Set xlApp = Nothing 
Set xlWB = Nothing 

End Sub 

回答

2

ActiveWindow是Excel應用程序對象的屬性。

你的代碼試圖從工作表對象使用它...

xlWB.Sheets(1).ActiveWindow.Zoom = 90 

當我測試了類似的代碼,用我自己的工作表對象,訪問拋出錯誤#438,「對象不支持此屬性或方法「

,如果你從你的應用程序對象變量開始你不應該得到這個錯誤...

xlApp.ActiveWindow.Zoom = 90 
+0

是做到了。謝謝! – BarryMahnly