2016-11-09 667 views
2

我有一個巨大的導入和導出應用程序,寫回到版本VBA 9.1和遷移它到Excel 2013 我在第一次凍結期間遇到問題使用這一行的行。設置窗口類的FreezePanes屬性-Excel VBA

AddWorksheetWithDefaults.Parent.Windows(1).Activate 
With AddWorksheetWithDefaults.Parent.Windows(1) 
.FreezePanes = False 
.FreezePanes = True 
End With 

在這種情況下我a''m得到錯誤爲無法設置窗口類

和AddWorksheetWithDefaults的FreezePanes屬性是一個返回對象的方法()。 「 我試圖以下

嘗試1

AddWorksheetWithDefaults.Parent.Windows(1).Activate 
With AddWorksheetWithDefaults.Parent.Windows(1).Rows("1:1").Select 
.FreezePanes = False 
.FreezePanes = True 
End With 

嘗試2

AddWorksheetWithDefaults.Parent.Windows(1).Activate 
With AddWorksheetWithDefaults.Parent.Windows(1).Rows(1).Select 
.FreezePanes = False 
.FreezePanes = True 
End With 

嘗試3

AddWorksheetWithDefaults.Parent.Windows(1).Activate 
With AddWorksheetWithDefaults.Parent.Windows(1).Rows("1:1") 
.FreezePanes = False 
.FreezePanes = True 
End With 

我試過的選項給我錯誤,因爲屬性或方法找不到

幫助我。

+0

這將工作:打開程序員標籤,開始錄製宏,凍結面板,因爲你需要,停止錄製。然後,看看生成的代碼。你會發現你需要的函數調用。 – FDavidov

+0

是的,我嘗試沒有幫助 – Aravind

+0

但是....你不需要定義你希望凍結的面板的限制嗎?我的意思是,嘗試選擇一個單元然後凍結。我認爲'FreezePanels'方法適用於WINDOW對象,而不適用於特定的單元格。單元格的選擇是要定義凍結髮生的地方。只是猜測雖然... – FDavidov

回答

1

試試這個:

AddWorksheetWithDefaults.Parent.Windows(1).Activate 
With AddWorksheetWithDefaults.Parent.Windows(1) 
    .FreezePanes = False 
    .SplitColumn = 0 
    .SplitRow = 1 
    .FreezePanes = True 
End With