VBA - 冻结不同文件上的窗格

时间:2016-08-15 14:52:27

标签: excel vba excel-vba excel-2010

我使用Excel 2010进行自动化操作。

简而言之,我使用此方法创建了一个新工作簿:

With CreateObject("Excel.Application")
    Set NewBook = .Workbooks.Add
    .Visible = True
End With

With NewBook
    Set WS = NewBook.Sheets("Sheet1")
End With

现在我想创建一个冻结窗格。

我尝试使用选择 ActiveWindow 作为this page

WS.Range("F4").Select
ActiveWindow.FreezePanes = True

以某种方式编辑不同的文件时,.select方法总是选择原始文件而不是添加的书。

然后我看了this page并尝试了:

NewBook.activate
With ActiveWindow
    If .FreezePanes Then .FreezePanes = False
    .SplitColumn = 5
    .SplitRow = 4
    .FreezePanes = True
End With

没有用,会在原始文件上创建冻结窗格。

以下工作也不起作用:

With NewBook
    If .FreezePanes Then .FreezePanes = False
    .SplitColumn = 5
    .SplitRow = 4
    .FreezePanes = True
End With

不确定我的.activate方法是错误的,还是ActiveWindow错误,或者.select是错误的。非常感谢任何人都可以提供帮助。

1 个答案:

答案 0 :(得分:0)

而不是使用ActiveWindow限定新工作簿的第一个(实际上唯一的)窗口。如果工作簿有多个工作表,则有一个先决条件;您需要在工作簿中激活所需的工作表,以将FreezePanes应用于工作簿中的正确工作表。

NewBook.Sheets("DesiredSheet").Activate
With NewBook.Windows(1)
    If .FreezePanes Then .FreezePanes = False
   .SplitColumn = 0
   .SplitRow = 1
   .FreezePanes = True
End With