【问题标题】:VBA - freeze pane on different fileVBA - 冻结不同文件上的窗格
【发布时间】:2016-12-09 07:25:01
【问题描述】:

我正在使用 Excel 2010 进行一些自动化操作。

简而言之,我用这种方法新建了一个工作簿:

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

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

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

我已经尝试在this page 上使用 select 和 ActiveWindow:

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 是否错误。非常感谢任何人都可以提供帮助。

【问题讨论】:

  • 另外,要创建冻结窗格,VBA 似乎总是需要 ActiveWindow,有没有办法绕过它?
  • 没有。它是窗口的属性,而不是工作表的属性。您需要使用NewBook.Application.ActiveWindow.FreezePanes = True 或NewBook.Windows(1).FreezePanes = True
  • 您正在创建一个新的 Excel 实例,因此您需要明确引用该实例。
  • 感谢@Rory 和 Tim,它在我使用 NewBook.Application‌​.ActiveWindow 时有效

标签: vba excel excel-2010


【解决方案1】:

在这种情况下,我尝试通过选择性使用 msgbox 语句来调试代码。在运行 newbook.activate 或 with 循环之前尝试放置 msgbox 语句,并输出当前工作簿或工作表的名称。这应该会告诉您 Excel 认为哪个工作簿当前处于活动状态。

还有... https://msdn.microsoft.com/en-us/library/office/ff835568.aspx 和 https://msdn.microsoft.com/en-us/library/office/ff195422.aspx

也许 excel 无法识别您创建的新工作簿的名称。看起来每个工作簿都有自己的索引,但是按照它们的创建顺序。也许尝试按索引引用工作簿。

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-09-09
      • 2020-06-25
      • 1970-01-01
      • 2020-05-13
      • 1970-01-01
      相关资源
      最近更新 更多