2016-09-14 149 views
-1

我想创建一个excel宏,在其中创建一些chechboxes。当我录制宏时,我在编辑模式下选择chechbox的属性,然后在左侧给出新的位置值,大小值,名称和标题到chechbox。但宏观本身不记得,只是大小和位置值。复选框在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",那将是错误。 我该如何处理?

回答

1

。然后this question(不是答案)中的代码可以提供所需的语法。

否则,下面应该工作,它不是最干净的,但做这项工作(帽尖到谷歌寻找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)。

+0

谢谢,我试图解释这种语法,但有些东西仍然是错误的。你能帮忙吗? Dim obj As OLEObject ActiveSheet.OLEObjects.Add(ClassType:=“Forms.CheckBox.1”,Link:= False)。选择 With Worksheets(“Munka1”) For Each obj In .OLEObjects If TypeName(obj。对象)= “Forms.CheckBox.1” 然后 obj.Name = “chechboxx” obj.Caption = “标题” 结束如果 接下来的obj 尾随着 –

+0

对不起,我不还不知道,如何格式化评论 –

+1

你确定你需要一个_ActiveX Control_,而不是_Form Control_? –

0

如果您想通过VBA宏要做到这一点,请看看添附图像1

+0

谢谢,它适用于名称,但不适用于标题。它写入代码:Selection.Name =“xyz”,但我想重写标题。 –