Note: The other languages of the website are Google-translated. Back to English

如何在Excel中锁定或冻结工作表选项卡?

假设您有一个包含多个工作表的工作簿,则有一个名为Main-sheet的工作表作为工作簿中的第一个选项卡。 现在,您想尝试锁定或冻结此工作表选项卡,以使其即使在多个工作表上滚动时也始终可见。 实际上,没有直接的方法可以冻结该选项卡,但是可以使用解决方法来解决此问题。

使用VBA代码锁定或冻结特定的工作表选项卡


箭头蓝色右气泡 使用VBA代码锁定或冻结特定的工作表选项卡

在Excel中,我们可以应用以下VBA代码来始终在当前单击的工作表选项卡之前创建特定的工作表,以便在滚动其他工作表选项卡时始终可以看到该工作表。 请执行以下操作:

1。 按住 ALT + F11 键,然后打开 Microsoft Visual Basic for Applications窗口.

2。 然后选择 的ThisWorkbook 从左边 项目浏览器 窗格,双击以打开 模块,然后将以下VBA代码复制并粘贴到空白模块中:

VBA代码:冻结或锁定特定的工作表选项卡

Private Sub Workbook_SheetActivate(ByVal Sh As Object)
'Update by Extendoffice
Application.EnableEvents = False
Application.ScreenUpdating = False
If Application.ActiveSheet.Index <> Application.Sheets("Main-sheet").Index Then
    Application.Sheets("Main-sheet").Move Before:=Application.Sheets(Application.ActiveSheet.Index)
    Application.Sheets("Main-sheet").Activate
    Sh.Activate
End If
Application.ScreenUpdating = True
Application.EnableEvents = True
End Sub

文档冻结表标签 1

3。 然后保存并关闭此代码,现在,当您单击任何工作表选项卡时,此特定工作表将始终位于您单击的工作表选项卡的顶部,请参见屏幕截图:

文档冻结表标签 2
-1
文档冻结表标签 3

备注:在上面的代码中,“主表”是您要冻结的表名称,您可以根据需要进行更改。


相关文章:

如何在Excel 2010中冻结窗格?

如何将冻结/解冻窗格一次应用于多个工作表?


最佳办公效率工具

Kutools for Excel 解决您的大部分问题,并将您的工作效率提高 80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能. 支持 Office / Excel 2007-2021 和 365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能 30 天免费试用。 60 天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (10)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
当我使用 VBA 时,我无法将数据从主表复制到另一张表请帮我修复这个错误
该评论由网站上的主持人最小化
哈哈哈。 如此真实! 你找到解决办法了吗?
该评论由网站上的主持人最小化
无法让您的代码工作,但这个工作:) Private Sub Workbook_SheetActivate(ByVal Sh As Object) Dim sc As Long ' 工作表计数 Dim NewPos As Long ' 已选择工作表的索引 Application.EnableEvents = False Application.ScreenUpdating = False If ActiveSheet.Index 1 Then sc = Sheets.Count NewPos = ActiveSheet.Index For i = 2 To NewPos - 1 Sheets(2).Move After:=Sheets(sc) Next i Sheets(1).Activate Sheets(2)。如果 Application.ScreenUpdating = True Application.EnableEvents = True End Sub,则激活 End
该评论由网站上的主持人最小化
是否可以使用多个参数创建一个? 就像不只是将一个主工作表移动到您正在工作的前面,是否可以将三个选项卡移动到您正在处理的前面?
该评论由网站上的主持人最小化
是的,有可能,您只需使用“AND”向 if 子句添加更多参数,例如 IF Application.ActiveSheet.Index Application.Sheets("Main-sheet").Index AND Application.ActiveSheet.Index Application。 Sheets("Other-Main-sheet").Index 等等...然后 Application.Sheets("Main-sheet").Move Before:=Application.Sheets(Application.Sheets("Other-Main-sheet") .Index) Application.Sheets("Main-sheet").Activate Application.Sheets("Other-Main-sheet").Move Before:=Application.Sheets(Application.ActiveSheet.Index) Application.Sheets("Other-Main -sheet").Activate Sh.Activate 这会将 Main-Sheet,然后是 Other-Main-Sheet 放在活动工作表的前面。
该评论由网站上的主持人最小化
这是vba我的excel表不冻结请给我解决方案
该评论由网站上的主持人最小化
这段代码运行良好。 唯一的问题是......如果我们关闭文件并再次打开它,它就会消失。
该评论由网站上的主持人最小化
[quote]这段代码运行良好。 唯一的问题是......如果我们关闭文件并再次打开它,它就会消失。通过桑斯[/quote] 尝试将文档保存为启用宏的工作簿。 我认为它应该以这种方式运作良好。
该评论由网站上的主持人最小化
正如 Thuyen 两年前指出的那样,当此代码处于活动状态时,您无法在工作表之间复制数据。 此外,代码是不必要的复杂。 您激活的工作表作为参数“Sh”传递给过程。 这使得对“ActiveSheet”的频繁调用变得不必要,并且可能会给尝试修改代码但经验不足的人带来问题。

这是我纠正这些问题的版本,甚至显示了如何添加第二张“主要”工作表(类似于 Dzingai 发布的内容):
-------------------------------------------------- ---------------

'如果您使用工作表的代号,则不需要这两行,我建议这样做。
设置 shtMain1 = Worksheets("Main-Sheet-1")
设置 shtMain2 = Worksheets("Main-Sheet-2")

如果 Application.CutCopyMode = False 那么
如果 Sh.Index <> shtMain1.Index 和 Sh.Index <> shtMain2.Index 那么
shtMain1.Move before:=Sh
shtMain2.Move before:=Sh
Sh.激活
结束如果
结束如果
该评论由网站上的主持人最小化
chăng đc gi cả
这里还没有评论

关注我们

版权所有 © 2009 - extendoffice.com。 | 版权所有。 供电 ExtendOffice。 | 网站地图
Microsoft和Office徽标是Microsoft Corporation在美国和/或其他国家的商标或注册商标。
受Sectigo SSL保护