Chr*_*isB 14 excel vba excel-vba
我在Excel中有一个VBA脚本冻结了Excel工作表的窗格,但我很想知道如果没有先选择一个范围,这是否可行.现在通过代码冻结第1行到第7行:
ActiveSheet.Range("A8").Select
ActiveWindow.FreezePanes = True
Run Code Online (Sandbox Code Playgroud)
有什么建议?
小智 39
使用视图►冻结窗格►冻结顶行命令记录自己,这就是.FreezePanes的功能.
With ActiveWindow
If .FreezePanes Then .FreezePanes = False
.SplitColumn = 0
.SplitRow = 1
.FreezePanes = True
End With
Run Code Online (Sandbox Code Playgroud)
因此,无论ActiveCell属性是什么,修改.SplitColumn和/或.SplitRow属性都应该为您完成.
冻结窗格有很多错误。我添加了我自己的答案,所以我会在这里找到它,下次不必重新发明它。
Public Sub FreezePanesAt(rngDataTopLeft As Range)
Dim wndCurrent As Window: For Each wndCurrent In rngDataTopLeft.Worksheet.Parent.Windows
With wndCurrent
.FreezePanes = False
If Not ((rngDataTopLeft.Row = 1) And (rngDataTopLeft.Column = 1)) Then
.ScrollRow = 1
.ScrollColumn = 1
.SplitRow = rngDataTopLeft.Row - 1
.SplitColumn = rngDataTopLeft.Column - 1
.FreezePanes = True
End If
End With
Next
End Sub
Run Code Online (Sandbox Code Playgroud)
用法示例:
FreezePanesAt ThisWorkbook.Worksheets("Sheet1").Range("B3")
FreezePanesAt ThisWorkbook.Names("Header").RefersToRange
Run Code Online (Sandbox Code Playgroud)
Application.Windows(Windows(Thisworkbook.Name)如果你有多个窗口为同一工作簿(名称将是“MyWorkbook:1”))将不会导致错误或Excel企图(这通常失败)崩溃后修复工作簿(国名是“MyWorkbook [已修复]”)| 归档时间: |
|
| 查看次数: |
45858 次 |
| 最近记录: |