有没有办法在Form Control按钮上编辑标题?

时间:2014-02-05 13:10:33

标签: excel vba button

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

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

4 个答案:

答案 0 :(得分:7)

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

复制粘贴以下代码

Private Sub Worksheet_Activate()
    Buttons("Button 1").Caption = "NEW TEXT"
End Sub

当Sheet1被激活并且按钮上的标题更改为NEW TEXT

时,此事件会激活

显然,你可以通过名字或索引来引用你的按钮。如果要修改其他对象上的文本,则可以修改"Button 1"

如果替换"NEW TEXT"

,则可以为其指定变量或表达式的评估

例如

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

Private Sub Worksheet_Activate()
    Buttons("Button 1").Caption = Sheets("Sheet2").Range("A1")
End Sub

这样每次激活Sheet1时,按钮上的文字都将从Sheet1,Cell A1中拾取

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

enter image description here

答案 1 :(得分:3)

我需要 TextFrame.Characters.Text 来获取标题

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

答案 2 :(得分:2)

在此示例中,名称为“按钮1”的表单控制按钮的标题将根据“Sheet1”中更改的单元格值进行更改。按钮位于Sheet1上,代码来自Sheet1的Class-module。 HTH

' 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

enter image description here

答案 3 :(得分:1)

试试这个:

Window