如何使用Excel上的VBA宏在不同的图纸上应用不同的冻结窗格
我目前有一个包含多个工作表的工作簿,我正在尝试将冻结窗格功能应用于我的大多数不同工作表。然而,我的一张工作表我想对其应用不同的规则,因此它只冻结前2列,而不是像所有其他工作表一样冻结7列 我的“Pivots”选项卡是我要应用单独规则的选项卡 我的代码是:如何使用Excel上的VBA宏在不同的图纸上应用不同的冻结窗格,vba,excel,Vba,Excel,我目前有一个包含多个工作表的工作簿,我正在尝试将冻结窗格功能应用于我的大多数不同工作表。然而,我的一张工作表我想对其应用不同的规则,因此它只冻结前2列,而不是像所有其他工作表一样冻结7列 我的“Pivots”选项卡是我要应用单独规则的选项卡 我的代码是: Sub FreezePanes() sheetlist = Array("1", "2", "3", "4", "5", "6", "7", "8") 'this is used so that all sheets freeze
Sub FreezePanes()
sheetlist = Array("1", "2", "3", "4", "5", "6", "7", "8")
'this is used so that all sheets freeze
For i = LBound(sheetlist) To UBound(sheetlist)
Worksheets(sheetlist(i)).Activate
' The above is the loop that will go through all the different items in the array to direct it at each worksheet
Columns("E:E").Columns.Group
Columns("H:N").Columns.Group 'to change
Columns("R:S").Columns.Group 'to change
Columns("H:H").Select
ActiveWindow.FreezePanes = True
'code to freeze column H on those particular items
Range("A7").Select
Range(Selection, Selection.End(xlToRight)).Select
Selection.AutoFilter
'code to apply filter on
ActiveSheet.Outline.ShowLevels RowLevels:=1, ColumnLevels:=1
Next
Worksheets("Pivots").Activate
Columns("A:A").Select
ActiveWindow.FreezePanes = True
'code to apply freeze panes only on first two columns
End Sub
我还有下面的代码可以帮助拆分它,但它看起来并不整洁
Sub test()
Worksheets("Pivots").Activate
ActiveWindow.SplitColumn = 2
ActiveWindow.SplitRow = 0
End Sub
我设法找出了问题所在 现在一切都好了
Worksheets("Pivots").Activate
Columns("C:C").Select
ActiveWindow.FreezePanes = True
'code to apply freeze panes only on first two columns
End Sub
,确保明确给出
列()和范围()的工作表s@BruceWayne-您只能冻结ActiveWindow上的窗格,因此每个工作表至少需要一次激活。@Jeeped虽然这是正确的,但从长远来看,最好避免使用它。(例如,在OP的回答中,他使用了。选择本可以轻松避免的。我明白你的意思,是的,冻结窗格无法避免使用ActiveWindow
,但我仍然认为提醒他尽量避免使用这些特定元素是一件好事