【问题标题】:checkbox rename in excel macroexcel宏中的复选框重命名
【发布时间】:2016-09-14 19:16:22
【问题描述】:

我想创建一个 excel 宏,在其中创建一些复选框。当我录制宏时,我在编辑模式下选择复选框的属性,然后在左侧我为复选框提供新的位置值、大小值、名称和标题。但宏本身不记得,只记得大小和位置值。

它将在 Visual Basic 代码中:

ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False, _
        DisplayAsIcon:=False, Left:=128.25, Top:=84.75, Width:=108, Height:= _
        21).Select 

当我尝试编写代码本身时,Caption:="xyz",那将是错误的。 我该如何处理?

【问题讨论】:

    标签: vb.net excel macros


    【解决方案1】:

    如果您想通过 VBA 宏执行此操作。然后this question(不是答案)中的代码可以提供所需的语法。

    否则,以下应该可以工作,它不是最干净的,但可以完成工作(向 Google 致敬以查找 this):

    Sub test()
    Dim obj As OLEObject
    Set obj = ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1")
    obj.Name = "checkboxx"
    obj.Object.Caption = "CAPTION"
    End Sub
    

    请注意,您将无法使用 VBA (F8) 的 Step Into 功能运行此操作。

    【讨论】:

    • 谢谢,我试图解释那个语法,但还是有问题。你能帮忙吗? Dim obj As OLEObject ActiveSheet.OLEObjects.Add(ClassType:="Forms.CheckBox.1", Link:=False).Select With Worksheets("Munka1") For Each obj In .OLEObjects If TypeName(obj.Object) = " Forms.CheckBox.1" Then obj.Name = "chechboxx" obj.Caption = "CAPTION" End If Next obj End With
    • 您确定需要 ActiveX 控件,而不是 表单控件
    • 在我看来,表单控件更容易操作。无论如何,我编辑了答案,现在它应该适合你。
    • 正如我所尝试的,checkbox.Caption = "asdf" 也不适用于表单控件...我不明白
    • 好的,它适用于表单控件。真的申请不会那么难,所以我希望它会足够。感谢您的帮助!
    【解决方案2】:

    请看附图1

    【讨论】:

    • 谢谢,它适用于名称,但不适用于标题。它在代码中写入:Selection.Name = "xyz",但我也想重写标题。
    猜你喜欢
    • 2011-08-31
    • 2013-06-23
    • 2011-08-29
    • 2018-03-12
    • 1970-01-01
    • 1970-01-01
    • 2014-08-06
    • 2016-07-20
    • 1970-01-01
    相关资源
    最近更新 更多