体验零代码搭建

一个窗体控件能够链接到多个单元格吗?

网友投稿  ·  2023-11-26 18:11  ·  表单工具  ·  阅读 385


Q如下图1所示,在工作表中,有3个数值调节按钮(窗体控件),每个按钮链接到一个单元格。当点击数值调节按钮的上下箭头时,链接到的单元格中的数值会相应的增加或减少。

Q如下图1所示,在工作表中,有3个数值调节按钮(窗体控件),每个按钮链接到一个单元格。当点击数值调节按钮的上下箭头时,链接到的单元格中的数值会相应的增加或减少。

一个窗体控件能够链接到多个单元格吗?

图1

通常,我们按下列步骤链接控件和单元格。首先绘制控件,然后选择控件并单击右键,在快捷菜单中选取“设置控件格式”命令。在“设置控件格式”对话框的“控制”选项卡中,设置单元格链接,如图2所示。

图2

当然,在图2所示的“单元格链接”中,可以选择或输入单元格区域,但仍然只是链接到区域左上角的单元格。那么,如何仅使用一个数值调节按钮,将其链接到多个单元格呢?

下面是chandoo.org介绍的技巧,与大家分享。

A:

可以将控件链接到命名公式,而该命名公式会基于当前单元格返回相应的单元格,因此控件将动态链接到相应的单元格,从而实现一个控件可以改变多个单元格的值。

如下图3所示的工作表Sheet2,我们将这个数值调节按钮动态链接到单元格C3、C4、C5,从而能够修改这些单元格中的值。

图3

定义名称如图4所示。

图4

其中,名称:SelectedRow

引用位置:A1

名称:ControlRange

引用位置:=Sheet2!$C$3:$C$5

名称:ControlLink

引用位置:=OFFSET(Sheet2!$C$1,SelectedRow-1,0)

设置控件格式如图5所示。

图5

在VBE编辑器的Sheet2代码模块中,输入代码:

Private SubWorksheet_SelectionChange(ByVal Target As Range)

If Intersect(Target,Range(“ControlRange”)) Is Nothing Then

Range(“SelectedRow”).Value =0

Exit Sub

End If

Range(“SelectedRow”).Value = Target.Row

Application.CalculateFull

End Sub

至此,所有的工作完成。选择单元格C3,单击数值调节按钮,C3中的数值会相应变化,对于单元格C4和C5也是如此,如图6所示。

图6

如果要链接到不连续的单元格区域,例如单元格区域C3:C5、B6:B8、C9:C11中的9个单元格,那么可以将名称ControlRange修改为:

=Sheet2!$C$3:$C$5,Sheet2!$B$6:$B$8,Sheet2!$C$9:$C$11


如何隐藏Excel功能区界面? << 上一篇
2023-11-26 18:11
如何实现图表文本与单元格文本的链接?
2023-11-26 18:11
下一篇 >>

相关推荐