Excel 在单元格内以编程方式插入组合框
我想在活动单元格中插入对象Excel 在单元格内以编程方式插入组合框,excel,combobox,vba,Excel,Combobox,Vba,我想在活动单元格中插入对象curCombo组合框,而不定义宽度和高度。在我的一些测试中,我运用了这种原理,但我没有得到同样的效果 Set curCombo = ActiveSheet.Shapes.AddFormControl(.Left, .Top, .Width, .Height) 这是我的密码: Sub comboBox1() Dim curCombo As Object '// Main challange is this set procedure here.
curCombo
组合框,而不定义宽度和高度。在我的一些测试中,我运用了这种原理,但我没有得到同样的效果
Set curCombo = ActiveSheet.Shapes.AddFormControl(.Left, .Top, .Width, .Height)
这是我的密码:
Sub comboBox1()
Dim curCombo As Object
'// Main challange is this set procedure here.
Set curCombo = ActiveSheet.Shapes.AddFormControl(xlDropDown, _
Left:=Cells(ActiveCell.Row, 3).Left, _
Top:=Cells(ActiveCell.Row, 3).Top, Width:=100, Height:=20)
With curCombo
.ControlFormat.DropDownLines = 3
.ControlFormat.AddItem "1", 1
.ControlFormat.AddItem "2", 2
.ControlFormat.AddItem "3", 3
.Name = "myCombo" & ER.Row
'.OnAction = "myCombo_Change" & ER.row
End With
End Sub
您的意思是,您指定的任何单元格都应该与该单元格重叠吗?-西德哈特路1小时前
是的,先生。事实就是如此阿拉蒂奥德3分钟前 这就是你想要的吗
Sub comboBox1()
Dim curCombo As Object
Dim ws As Worksheet
Dim rng As Range
'~~> Change this to the relevant sheet
Set ws = ActiveSheet
With ws
'~~> Change this to the relevant cell where
'~~> you want the combobox
Set rng = .Range("B5")
Set curCombo = .Shapes.AddFormControl(xlDropDown, _
Left:=rng.Left, _
Top:=rng.Top, _
Width:=rng.Width, _
Height:=rng.Height)
With curCombo
.ControlFormat.DropDownLines = 3
.ControlFormat.AddItem "1", 1
.ControlFormat.AddItem "2", 2
.ControlFormat.AddItem "3", 3
.Name = "myCombo" & ER.Row
'.OnAction = "myCombo_Change" & ER.row
End With
End With
End Sub
屏幕截图
您面临什么问题?什么是
ER.row
?ER.row只是excel的一个坐标,当我在工作表中创建新行时,它会增长。我所面临的没有任何错误消息。我只想创建一个100%适合excel单元格的组合框。Set curCombo=ActiveSheet.Shapes.AddFormControl(.Left、.Top、.Width、.Height)这在某种程度上与我以前的测试有效。您的意思是指定哪个单元格应该重叠?是的,先生。是这样的,哇。谢谢你,伙计!这段代码对我帮助很大!很高兴它对你有用。我建议您了解代码的工作原理:)