gpt4 book ai didi

vba - 通过 vba 卡住行,无需激活单个工作表

转载 作者:行者123 更新时间:2023-12-04 20:33:19 24 4
gpt4 key购买 nike

有没有办法在不使用 select 的情况下卡住任意数量工作表的前 x 行? ,或激活每张纸?

This answer建议使用

With ActiveWindow
If .FreezePanes Then .FreezePanes = False
.SplitColumn = 0
.SplitRow = 1
.FreezePanes = True
End With

, 录制宏建议使用 Rows("4:4").Select: ActiveWindow.FreezePanes = True ,但我更喜欢不依赖于激活工作簿中的每张工作表的解决方案。

IE。就像是
Sub FreezeTopXPanes(x As Long)
Dim ws As Worksheet

For Each ws in ThisWorkbook.Worksheets
' Freeze top x rows
Next ws
End Sub

有什么办法可以做到这一点,还是我坚持另一个问题的解决方案?

最佳答案

这就是问题所在。正如@Patrick 所提到的,这是相当不可能的,因为卡住 Pane 方法仅适用于事件窗口。查看更多详情 here.

我认为最好的方法是一次对所有工作表或某些工作表使用单独的程序:

Sub Freeze_wsh() 
Dim Ws As Worksheet
Application.ScreenUpdating = False
For Each Ws In Application.ActiveWorkbook.Worksheets
Ws.Activate
With Application.ActiveWindow
.FreezePanes = True
.ScrollRow = 1
.ScrollColumn = 1
End With
Next
Application.ScreenUpdating = True
End Sub

或者您可以添加一个变量来引用某个工作表
Sub Freeze_wsh(x as Integer) 
Dim Ws As Worksheet
Application.ScreenUpdating = False
set Ws = ActiveWorkbook.Worksheets(x)
Ws.Activate
With Application.ActiveWindow
.FreezePanes = True
.ScrollRow = 1
.ScrollColumn = 1
End With
Next
Application.ScreenUpdating = True
End Sub

关于vba - 通过 vba 卡住行,无需激活单个工作表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46521886/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com