【问题标题】:Excel VBA Set a Commandbutton Caption from a Userform TextboxExcel VBA 从用户窗体文本框中设置命令按钮标题
【发布时间】:2014-06-16 20:52:24
【问题描述】:

我有一个在 excel 电子表格(不在用户表单中)上的按钮,并且我有一个用户来自,它有一个文本框并希望它,当我在我的用户表单的文本框中输入一个名称时将我的 Excel 工作表上的按钮的标题设置为在文本框中输入的内容。我想知道我需要使用什么代码以及在哪里插入代码?

希望这是有道理的,请记住我是新手,所以这就是我问在哪里插入代码的原因

在此先感谢

【问题讨论】:

  • 它是什么类型的按钮 - 表单或 ActiveX?
  • 好吧,我使用的是表单按钮,所以我想是表单

标签: excel vba


【解决方案1】:

你的用户表单中的代码,假设一个名为 TextBox1 的文本框,可能是这样的:

Private Sub TextBox1_Exit(ByVal Cancel As MSForms.ReturnBoolean)
   If Len(Me.Textbox1.text) > 0 then
     ActiveSheet.Buttons("Button 1").Caption = Me.Textbox1.text
   End If
End Sub

或者如果您希望在键入时更新标题:

Private Sub TextBox1_Change()
    If Len(Me.TextBox1.Text) > 0 Then _
        ActiveSheet.Buttons("Button 1").Caption = Me.TextBox1.Text
End Sub

【讨论】:

  • 这看起来正是我所追求的,但就像我说我是新手一样,如何在我的 excelsheet 上找到表单按钮的按钮名称?,我的按钮链接到一个名为Button_PLU1 有一个子 Button1() 我会为按钮名称设置什么?
  • 按住 Ctrl 并单击按钮。您应该在编辑栏左侧的名称框中看到它的名称 - 默认情况下它可能是“按钮 1”。我已经根据这个假设更新了我的代码。 :)
  • 这似乎运行没有任何错误,我只是想知道我是否在问正确的问题是按钮上的文字标题?因为那是我试图改变
  • 是的。它应该在光标离开用户窗体上的文本框时更新(如果它是唯一的控件,它将在您关闭窗体时更新)。如果你想实时查看它,你可以使用文本框的 Change 事件来代替 - 我会将它作为一个选项添加到代码中。
  • 第二个选项正是我所追求的,并且效果很好。非常感谢
【解决方案2】:

由于您使用了“CommandButton”(它是一个 ActiveX 控件),但似乎正朝着表单控件前进,因此我采用了您需要的 2 种方法:

ActiveX:

ActiveSheet.Shapes("YourButton").OLEFormat.Object.Object.Caption = "YourText"

表格:

ActiveSheet.Shapes("YourButton").TextFrame.Characters.Text = "YourText"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-07-26
    • 1970-01-01
    • 1970-01-01
    • 2018-11-23
    • 1970-01-01
    • 1970-01-01
    • 2018-05-07
    相关资源
    最近更新 更多