如何在Excel中用VBA冻结面板(5种合适的方法)

  • Share This
Hugh West

在这篇文章中,我将向你展示如何用以下方法冻结Excel工作表的窗格 Visual Basic of Applications (VBA)。 很多时候,在Excel中工作时,为了方便和获得更好的体验,我们需要冻结工作表的窗格。 今天,你将学习如何通过以下方法实现这一目标 VBA .

在Excel中用VBA冻结面板(快速浏览)

 Sub Freeze_Panes_Row_and_Column() Range("C4").Select ActiveWindow.FreezePanes = True End Sub 

下载实践工作手册

下载这本练习手册,在阅读本文时进行练习。

VBA Freeze Panes.xlsm

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 我试图讨论所有可能的方法来应用 冻结窗格 你有什么问题吗? 欢迎向我们提问。 不要忘记访问我们的网站 ǞǞǞ 以了解更多帖子和更新。

Hugh West is a highly experienced Excel trainer and analyst with over 10 years of experience in the industry. He holds a Bachelor's degree in Accounting and Finance and a Master's degree in Business Administration. Hugh has a passion for teaching and has developed a unique teaching approach that is easy to follow and understand. His expert knowledge of Excel has helped thousands of students and professionals worldwide improve their skills and excel in their careers. Through his blog, Hugh shares his knowledge with the world, offering free Excel tutorials and online training to help individuals and businesses reach their full potential.