2016-11-16 104 views
2

我在Outlook中編寫了一個VBA宏,該宏引用了Excel工作簿並對該工作簿進行了更改。我想凍結窗格(而不是「拆分」),僅低於第1行從Outlook中的VBA中,如何凍結Excel中的窗格?

這是我試過的代碼:

With Excel.ActiveWindow 
    .SplitColumn = 0 
    .SplitRow = 3 
    .FreezePanes = True 
End With 

......還有......

Dim excApp As Object 
Set excApp = CreateObject("Excel.Application") 

With excApp.ActiveWindow 
    .SplitColumn = 0 
    .SplitRow = 3 
    .FreezePanes = True 
End With 

兩個丟給運行時間錯誤91在線.SplitColumn = 0

我欣賞任何幫助或指針。謝謝!

回答

2

對於凍結窗格,它實際上是相對於光標位置,所以這是.Select實際上是必要的少數幾個地方之一。

此代碼應該做你所追求的:

Dim excApp As Excel.Application 
Set excApp = GetObject(, "Excel.Application") 

excApp.ActiveWorkbook.ActiveSheet.Range("2:2").Select 
excApp.ActiveWindow.FreezePanes = True 

它預設的Excel已經打開。

- 編輯 -

每@ChrisB,有辦法做到這一點不可怕.Select:我確實需要GetObject的,而不是創建對象

With excApp.ActiveWindow 
    .SplitRow = 3 
    .FreezePanes = True 
End With 
+0

。您的解決方案有效 – ChrisB

+0

你其實不需要使用'Select'。退房[excel vba凍結窗格沒有選擇](http://stackoverflow.com/questions/34094445)。 '昏暗excApp作爲Excel.Application 設置excApp = GetObject的( 「Excel.Application」) 隨着excApp.ActiveWindow .SplitRow = 3 .FreezePanes =真 結束With' – ChrisB

+0

這是偉大的。今天我學到了東西;謝謝。我已將您的反饋納入答案。 – Hambone