是否可以复制创建的组合框并将其粘贴到另一个单元格中 那个细胞链也改变了?
我使用Excel 2007进行此操作。
示例:我在A5中有组合框,单元链接指向B5。我要复制 组合框到单元格A4,单元格链接指向B4。
我需要复制超过50个组合框。当我按下包含宏的命令按钮来复制整行并将所有行插入新行时,我试图使用它。
我找到了一个答案,但VBA显示“编译错误:用户定义的类型未定义!”和“TypeOf cbo.Object Is msforms.ComboBox”是粗体。
Macro我发现:
Sub Test()
Dim cbo As OLEObject
For Each cbo In ActiveSheet.OLEObjects
If TypeOf cbo.Object Is msforms.ComboBox Then
cbo.LinkedCell = cbo.TopLeftCell.Offset(, 1).Address
End If
Next
End Sub
答案 0 :(得分:1)
原始答案让我走上正轨并为“ActiveX控件”工作。我需要使用标准的Excel“Form control”组合框来做同样的事情,它非常相似,除了它是一个形状对象,需要选择进行操作。这是我的代码,对我有用:
Sub AllocateLinkedCellsToComobBoxes()
Dim myShape As Shape
For Each myShape In ActiveSheet.Shapes
If myShape.Type = msoFormControl Then
If myShape.FormControlType = xlDropDown Then
myShape.Select
Selection.LinkedCell = Selection.TopLeftCell.Address
End If
End If
Next
End Sub
答案 1 :(得分:0)
Reima,
如果您使用“控件工具箱”工具栏中的控件,则以下内容应该有效。唯一的区别是它不是MSForms.Combobox。 :
Sub Test()
Dim cbo As OLEObject
For Each cbo In ActiveSheet.OLEObjects
If TypeOf cbo.Object Is ComboBox Then
cbo.LinkedCell = cbo.TopLeftCell.Offset(, 1).Address
End If
Next
End Sub
如果您使用“表单”工具栏中的组合框,那么我不确定最佳方法是什么。我尝试使用上面的方法。