我录制了一个宏,它只使用了Excel 2007中Freeze Panes下拉列表中内置的“Freeze Top Row”选项。
编辑器中查看的代码如下:
With ActiveWindow
.SplitColumn = 0
.SplitRow = 1
End With
ActiveWindow.FreezePanes = True
但是,当我从编辑器运行此代码时,它会分割屏幕而不是冻结窗格。它提供了所需的效果,但在功能区上选择了“分割”选项。
有什么想法吗?
答案 0 :(得分:2)
出于某种原因,您描述的行为是正确的 我没有那台ATM的答案。但是下面的工作会冻结顶行 使用注释代码的效果相同。
Rows("2:2").Select '~~> Range("A2").Select
ActiveWindow.FreezePanes = True
注意:如果ScreenUpdating为False,则以上内容无效,然后在代码中设置为True。
答案 1 :(得分:0)
要冻结顶行,请使用以下代码:
Rows("1:1").Select
ActiveWindow.FreezePanes = True
要冻结更多行而不仅仅是顶行,请将Rows("1:1").Select
更改为所需的行。
您需要激活要冻结的工作表。以下代码是您可以使用的示例过程:
Public Sub fFreezeRow(wsName As String, intRow As Integer)
With ThisWorkbook.Worksheets(wsName)
.Activate
.Rows(intRow & ":" & intRow).Select
End With
ActiveWindow.FreezePanes = True
End Sub