通常解冻 Pane 的代码是

ActiveWindow.FreezePanes = False

但是假设我有 Workbook 类型的 sourceBook 和 String 类型的 sheetName。例如
sourceBook.sheets(sheetName)

如何在不调用 ActiveWindow 之类的东西的情况下解冻该工作簿工作表上的 Pane ?

最佳答案

这将从给定工作簿的每个窗口的每个工作表中删除 FreezePanes,它还确保相同的工作表在运行代码之前处于事件状态:

Dim w As Window
Dim activews As Worksheet, ws As Worksheet
For Each w In sourceBook.Windows
    w.Activate
    If activews Is Nothing Then
        Set activews = w.ActiveSheet
    End If
    For Each wsv In w.SheetViews
        wsv.Sheet.Activate
        w.FreezePanes = False
    Next
    activews.Activate
    set activews = nothing
Next

正如 Rick 所指出的,您不能在不激活窗口的情况下解冻 Pane 。但是您不必调用 ActiveWindow

关于Excel VBA : Unfreezing panes of a workbook object's sheet?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13752987/

10-13 02:41