Excel VBA 获取按钮对象
程序员文章站
2022-07-05 08:38:36
今天给同事写了两个VBA宏,并分别把宏赋给了两个按钮。 因为两个宏都是实现在两种显示方式之间切换,于是我想除了功能的实现外,还希望在切换到其中一种方式时,按钮上面的文字也可以跟着改变,起到提示作用。 但是网上找了很多文章,都实现不了,而且很多都是针对Form表单控件的。所以自己尝试解决 先说明,我的 ......
今天给同事写了两个VBA宏,并分别把宏赋给了两个按钮。
因为两个宏都是实现在两种显示方式之间切换,于是我想除了功能的实现外,还希望在切换到其中一种方式时,按钮上面的文字也可以跟着改变,起到提示作用。
但是网上找了很多文章,都实现不了,而且很多都是针对Form表单控件的。所以自己尝试解决
先说明,我的按钮是 开发者菜单-插入-表单控件 默认下面的第一个。如下图
插入控件之后,可以直接在左上角显示单元格位置的地方修改它的名字,不修改将采用默认值。
在VBA中,先定义一个Button变量,再通过sheet对象和控件名字引用即可:
Sub getControls() Dim sht As worksheet Set sht = worksheets(sheetname) Dim bt As Button Set bt = sht.[buttonName] bt.Caption = "控件显示的文字" End Sub
这里容易令人困惑的是,一般我们在定义变量的时候,写完As加空格会有提示列表出现的,但是我在提示列表里面没有发现有Button这种类型。
此外,在引用控件的时候,方括号[]里面直接写控件名,不需要使用双引号
在写bt再加一个点的时候,就会有它的属性或方法的提示列表出现了