2016-11-09 664 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