Excel 有没有办法编辑表单控件按钮上的标题?

Excel 有没有办法编辑表单控件按钮上的标题?,excel,vba,button,Excel,Vba,Button,是否可以(在工作表更改事件中)更改表单控件按钮的标题文本 理想情况下,我希望根据工作簿中的其他数据在现有按钮标题中添加一个变量。好的,右键单击电子表格底部的Sheet1选项卡,然后选择查看代码 复制粘贴以下代码 Private Sub Worksheet_Activate() Buttons("Button 1").Caption = "NEW TEXT" End Sub 当Sheet1被激活时,此事件将触发,并将按钮上的标题更改为NEW TEXT 显然,您可以通过名称或其索引来引用按

是否可以(在工作表更改事件中)更改表单控件按钮的标题文本


理想情况下,我希望根据工作簿中的其他数据在现有按钮标题中添加一个变量。

好的,右键单击电子表格底部的Sheet1选项卡,然后选择查看代码

复制粘贴以下代码

Private Sub Worksheet_Activate()
    Buttons("Button 1").Caption = "NEW TEXT"
End Sub
当Sheet1被激活时,此事件将触发,并将按钮上的标题更改为
NEW TEXT

显然,您可以通过名称或其索引来引用按钮。如果要修改其他对象上的文本,则需要修改
“按钮1”

如果替换
“新文本”

比如说

如果在
Sheet2
单元格A1中键入任何内容,则可以修改Sheet1后面的代码并使用

Private Sub Worksheet_Activate()
    Buttons("Button 1").Caption = Sheets("Sheet2").Range("A1")
End Sub
这样,每次激活Sheet1时,按钮上的文本将从Sheet1单元格A1中拾取

要查找按钮的名称,请查看此处


在此示例中,名为“Button 1”的表单控制按钮的标题根据“Sheet1”中更改的单元格值进行更改。按钮位于Sheet1上,代码进入Sheet1的类模块。嗯

' Sheet1 module:

Private Sub Worksheet_Change(ByVal Target As Range)
    Const buttonName As String = "Button 1"

    Dim targetButton As Excel.Button

    On Error Resume Next
    Set targetButton = Target.Worksheet.Buttons(buttonName)
    On Error GoTo 0

    If targetButton Is Nothing Then _
        Exit Sub

    If Target.Value <> "" Then _
        targetButton.Caption = Target.Value

End Sub
”第1页模块:
私有子工作表_更改(ByVal目标作为范围)
Const buttonName As String=“按钮1”
将targetButton调暗为Excel.Button
出错时继续下一步
设置targetButton=Target.Worksheet.Buttons(buttonName)
错误转到0
如果targetButton什么都不是,那么_
出口接头
如果Target.Value为“”,则_
targetButton.Caption=Target.Value
端接头
试试这个:

ActiveSheet.Shapes("Button 1").Select 
Selection.Characters.Text = "My New Caption"

我需要TextFrame.Characters.Text才能看到标题

Worksheets("Sheet1").Shapes("button 1").TextFrame.Characters.Text = "Click"

我在表2上有多个按钮。我怎么知道哪个是按钮1?我找不到按钮的属性。太棒了!成功了。甚至都没意识到它藏在那里。我想我应该把这些都改成ActiveX按钮。非常感谢!这只适用于ActiveX控件,而不适用于表单控件。请注意:这是“表单控件”按钮的解决方案,上面接受的答案适用于“ActiveX”类型的按钮。