今天給同事寫了兩個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
再加一個點的時候,就會有它的屬性或方法的提示列表出現了