我非常沮丧。我想要一个按钮,允许用户在下一行复制两个ComboBox。 (单击,复制,在下面插入行,粘贴。)
到目前为止,我所做的一切都没有奏效。我已经尝试将OLE对象复制并粘贴到剪贴板,但也复制了该名称。我在创建后无法访问该对象。从头开始创建一个新对象也不起作用。有时它会默认复制组合框的名称(在运行时之前创建)。我甚至开始使用新副本。我注意到在创建第一个副本后,以下命名为ComboBox2,3,4等等。
ActiveSheet.OLEObjects.Add ClassType:="Forms.ComboBox.1", Link:=False, DisplayAsIcon:=False, Left:=50, Top:=80, Width:=100, Height:=15
如果这是VB.NET,那就没问题了。 (创建实例,设置属性,添加处理程序,添加到控件集合。)MS Access是否更适合我的项目?可能,但目标用户没有。
答案 0 :(得分:0)
上面使用的代码是创建一个新控件而不是复制控件。你想重命名你自己添加的控件吗? 如果我理解正确,我们可以获得我们添加的OleObject并根据需要更改其属性。
以下是使用VBA的示例布线,将组合框添加到下一行并重命名:
Dim combo As OLEObject
Selection.Offset(1, 0).Select
Selection.EntireRow.Insert , CopyOrigin:=xlFormatFromLeftOrAbove
Set combo = ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _
DisplayAsIcon:=False, Left:=Selection.Left, Top:=Selection.Top, Width:=48, Height _
:=15)
combo.Name = "combox_newName"