Table of contents
在这篇文章中,我将向你展示如何用以下方法冻结Excel工作表的窗格 Visual Basic of Applications (VBA)。 很多时候,在Excel中工作时,为了方便和获得更好的体验,我们需要冻结工作表的窗格。 今天,你将学习如何通过以下方法实现这一目标 VBA .
在Excel中用VBA冻结面板(快速浏览)
Sub Freeze_Panes_Row_and_Column() Range("C4").Select ActiveWindow.FreezePanes = True End Sub
下载实践工作手册
下载这本练习手册,在阅读本文时进行练习。
Excel冻结面板的介绍
在Microsoft Excel中,冻结窗格是指 冻结某一行或某一列 这通常是针对包含数据集标题的行或列而做的。
例如,请看下面的数据集。 在这里,我们将工作表冻结到了第几行 3 ( 年 )和列 B ( 产品名称 ).
当我们通过滚动滚动条往下看工作表时,我们会发现从第1行到第2行的行数都是一样的。 3 始终可见。
列的情况也一样 B 而我们向右滚动。
现在,要手动冻结工作表中的窗格,请选择行和列之后的单元格(单元格 C4 在这个例子中),并转到 View> Freeze Panes> Freeze Panes 在Excel的工具栏中。
要想只冻结该行,请选择整个行,然后转到 View> Freeze Panes> Freeze Panes 在Excel的工具栏中。
同样,要想只冻结该列,选择整个列并进入 View> Freeze Panes> Freeze Panes 在Excel的工具栏中。
⧭ 备注。
- 选择 冻结顶行 只冻结最上面的一行。
- 同样地,选择 冻结第一列 只冻结第一列。
在Excel中用VBA冻结面板的5种方法
我们已经了解了什么是在Excel中冻结窗格,以及如何手动完成它。 现在,让我们进入今天的主要讨论,如何用以下方法冻结窗格 VBA .
1.在Excel中用VBA只冻结一行
首先,让我们看看我们如何能够只冻结一个有 VBA .
如前所述,要想只冻结一行,首先要选择要冻结的行下面的整行(Row 4 在这个例子中)。
然后你要应用 冻结板块 指挥。
所以 VBA 代码将是。
⧭ VBA代码。
Sub Freeze_Panes_Only_Row() Range("C4").EntireRow.Select ActiveWindow.FreezePanes = True Range("C4").Select End Sub
⧭ 输出。
运行这段代码,你会发现活动工作表被冻结到了第几行 3 .
⧭ 备注。
- 这里我们使用了细胞 C4 选择行中的任何单元格 4 你可以根据你的需要来选择它。
- 代码的最后一行 Range("C4").Select 是为了取消对整个行的选择 4 (取消选择任何选区意味着选择一个新的选区,因为在Excel中,有些东西必须保持选择)。 如果你愿意,你可以省略这一行。
阅读更多:如何在Excel中冻结顶行(4种简单方法)
2.在Excel中用VBA只冻结一列
我们已经看到了我们如何用以下方法冻结一行 VBA 现在让我们看看如何用以下方法冻结一列 VBA .
与行类似,要想只冻结一列,首先要选择要冻结的那一列右边的整列(Column C 在这个例子中)。
然后你要应用 冻结板块 指挥。
所以 VBA 代码将是。
⧭ VBA代码。
Sub Freeze_Panes_Only_Column() Range("C4").EntireColumn.Select ActiveWindow.FreezePanes = True Range("C4").Select End Sub
⧭ 输出。
运行这段代码,你会发现活动的工作表被冻结到第几列 C .
⧭ 备注。
- 这里我们使用了细胞 C4 选择列中的任何单元格 C 你可以根据你的需要来选择它。
- 代码的最后一行 Range("C4").Select 是为了取消对整列的选择 C (取消选择任何选区意味着选择一个新的选区,因为在Excel中,有些东西必须保持选择)。 如果你愿意,你可以省略这一行。
阅读更多:如何在Excel中冻结2列(5种方法)
3.在Excel中用VBA冻结行和列
我们已经看过如何分别冻结一行和一列。 这次,让我们看看如何将行和列都冻结在一起。
要同时冻结行和列,你必须选择要冻结的行下面和要冻结的列右边的一个单元格(单元格 C4 在这个例子中)。
然后你要应用 冻结窗格 指挥。
所以 VBA 代码将是。
⧭ VBA代码。
Sub Freeze_Panes_Row_and_Column() Range("C4").Select ActiveWindow.FreezePanes = True End Sub
⧭ 输出。
运行这段代码,你会发现活动工作表被冻结到了第几行 3 和列 C .
⧭ 备注。
- 这里我们使用了细胞 C4 选择行下的一个单元格 3 并向右转到列 B 这就是细胞。 C4 你可以根据你的需要来选择它。
阅读更多:如何在Excel中冻结选定的面板(10种方法)。
类似的阅读。
- 如何在Excel中冻结多个面板(4个标准)
- 在Excel中冻结面板的键盘快捷键(3个快捷键)
- 如何冻结Excel中的前3列(4种快速方法)
4.在Excel中用VBA开发一个用户表格来冻结面板
我们已经看到了如何在Excel工作表中用VBA冻结某一行或某一列或同时冻结行和列。
现在,我们将开发一个Userform,将所有不同的任务放在一个单一的界面中。
⧭ 一步一步地开发用户表格的程序。
⧪ 步骤1。
- 新闻 ALT+F11 键盘上的 视觉基础
- 在 视觉基础 编辑,请到 Insert> UserForm 来插入一个新的 用户表格 .
⧪ 步骤2。
- 一个新的 用户表格 叫做 用户表格1 将被创建在 VBA
- 左边的 用户表格 ,你会得到一个 工具箱 叫做 控制 将你的鼠标悬停在工具箱上并搜索一个 文本框 (TextBox1) 找到一个后,将其拖到 用户表格 .
- 同样地,拖动一个 列表框 ( ListBox1 )的权利,以 文本框 ,和一个 命令按钮 (Commandbutton1) 到右下角的 用户表格 .改变显示的 命令按钮 至 认可 .你的 用户表格 现在应该是这样的。
⧪ 步骤3。
插入一个 模块 ( 插入> 模块 ) 从 VBA 工具箱
⧪ 步骤4。
插入以下内容 VBA 的代码。 模块 .
Sub Run_UserForm() UserForm1.Caption = "Freeze Panes" UserForm1.TextBox1.Text = Selection.Address UserForm1.TextBox1.BorderStyle = fmBorderStyleSingle UserForm1.ListBox1.BorderStyle = fmBorderStyleSingle UserForm1.ListBox1.ListStyle = fmListStyleOption UserForm1.ListBox1.AddItem "1、冻结行" UserForm1.ListBox1.AddItem "2、冻结列" UserForm1.ListBox1.AddItem "3、同时冻结行和列"加载UserForm1 UserForm1.Show End Sub
⧪ 步骤5。
双击 命令按钮 显示为 认可 一个名为 "Private Sub "的子程序。 命令按钮1_点击 将打开,在那里插入以下代码。
如果UserForm1.ListBox1.Selected(0) = True 那么Set Rng = Selection Rng.EntireRow.Select ActiveWindow.FreezePanes = True Rng.Select ElseIf UserForm1.ListBox1.Selected(1) = True 那么Set Rng = Selection Rng.EntireColumn.Select ActiveWindow.FreezePanes = True Rng.Select ElseIf UserForm1.ListBox1.Selected(2) = True 那么ActiveWindow.FreezePanes = True Else MsgBox "Select At Least One. ", vbExclamation End If Unload UserForm1
⧪ 步骤6。
同样地,双击 文本框1 一个名为 "Private Sub "的子程序。 纹理框1_变化 将打开,在那里插入以下代码。
Private Sub TextBox1_Change() On Error GoTo Message Range(TextBox1.Text).Select Message: Note = 5 End Sub
⧪ 步骤7。
你的 用户表格 现在可以使用了。 选择要冻结的行的下面和要冻结的列的右边的单元格(单元格 C4 这里),并运行 宏观 叫做 运行_用户表格 .
⧪ 步骤8。
- ǞǞǞ 用户表格 你会发现所选单元格的地址( C4 )中。 文本框 如果你愿意,你可以改变这一点。
- 然后在三个选项中选择任何一个。 列表框 这里我想同时冻结行和列,所以我选择了 冻结行和列 .
- 然后点击 认可 .
⧪ 步骤9。
你会发现工作表根据你的愿望被冻结。 (这里冻结到行 3 和列 B ).
相关内容。 如何在Excel中冻结帧(6个快速技巧)
5.Excel中冻结面板的替代方法:用VBA分割窗口
我们已经谈了很多关于 冻结窗格 现在,让我们看看一个非常有用的方法来替代 冻结窗格 在Excel中,将 分体式窗口 指挥。
你可以 ActiveWindow.SplitRow 或 ActiveWindow.SplitColumn 在 VBA 来分割工作表的行或列。
例如,要将工作表从第1行拆开 3 ,使用。
ActiveWindow.SplitRow = 3
同样地,要将工作表从列中分割出来 B ,使用。
ActiveWindow.SplitColumn = 2
⧭ VBA代码。
Sub Split_Window() ActiveWindow.SplitRow = 3 ActiveWindow.SplitColumn = 2 End Sub
⧭ 输出。
运行该代码,它将把活动工作表从第1行拆开 3 和列 B .
相关内容:如何在Excel中应用自定义冻结面板(3种简单方法)
需要记住的事情
- 申请前 冻结板块 在Excel中,你必须 解除所有冻结面板的冻结 否则 冻结板块 命令不会起作用。
- ǞǞǞ 冻结板块 命令不会通过 合并的 细胞。 所以 解除合并 在应用之前,他们 冻结板块 命令,如果有的话。
总结
因此,这些是要使用的方法 冻结窗格 与 VBA 我试图讨论所有可能的方法来应用 冻结窗格 你有什么问题吗? 欢迎向我们提问。 不要忘记访问我们的网站 ǞǞǞ 以了解更多帖子和更新。