通常解凍窗格代碼Excel VBA:解凍工作簿對象工作表的窗格?
ActiveWindow.FreezePanes = False
但說我有一個類型的工作簿的原始資料和String類型的SHEETNAME。例如
sourceBook.sheets(sheetName)
如何在不調用ActiveWindow之類的工作簿表單上解凍窗格?
通常解凍窗格代碼Excel VBA:解凍工作簿對象工作表的窗格?
ActiveWindow.FreezePanes = False
但說我有一個類型的工作簿的原始資料和String類型的SHEETNAME。例如
sourceBook.sheets(sheetName)
如何在不調用ActiveWindow之類的工作簿表單上解凍窗格?
這將從每片每個窗口爲給定的工作簿中刪除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
瑞克指出,你不能解凍沒有激活窗口的窗格。但是,您不必撥打ActiveWindow
。
不幸的是,凍結窗格是一個窗口對象的方法,您要應用它的表單需要是活動表格。 這意味着您必須選擇您想要凍結活動窗口上的窗格的單元格。
的代碼添加到工作表的激活事件(例如,這是工作表Sheet1下的代碼)
Option Explicit
Private Sub Worksheet_Activate()
ActiveWindow.FreezePanes = False
End Sub
好吧,我執行的是有凍結的窗格在紙張上排序的過程,如果是它拋出一個錯誤凍結 - 所以我必須解凍它。有沒有辦法解凍它並返回到之前活動的窗口?編輯:沒關係,你的代碼這樣做。一會兒。 – KaliMa
實際上,它不...我把它遺漏了,因爲你不想使用ActiveWindow。如果你想要這樣做,只需將activeWindow首先存儲爲'dim ActiveW as window:set ActiveW = ActiveWindow',然後在最後'activeW.Activate' –
不幸的是我仍然有相同的問題 編輯:忍者' d再次 – KaliMa