无法插入ActiveX控件相对于单元格

我正在尝试创build一个Excel电子表格,其中包含一个button,用于在包含button的单元格上方插入一行和一个ActiveXcombobox。 该button被选定大小并与单元格一起移动。 由于button随着每次单击而移动(如上所插入的行),并且用户可以在工作表上突出显示任何单元格,所以我需要创build一个相对于button单元格而不是活动单元格的macros。 我通过命名包含button的单元格并logging我自己的macros(使用“select使用相对引用”)在包含button的单元格上方插入一行来完成上半部分。 然后,我编辑了包含ActiveCell.Select到macros(“NamedCell”)的macros。select,以便无论用户已经突出显示的单元格,它将在button上方插入一行。

我遇到的问题是如何插入ActiveXcombobox。 生成的代码包含左,顶部,宽度和高度来定位ActiveXcombobox。 由于高度随着连续的点击和插入的行而改变,所有的combobox相互重叠。 如果这不可能发生或需要大量的VBA代码,请不要担心。 通过阅读你对别人的回答,我已经学会了一大堆。 这里是我目前拥有的macros,但它每次插入ActiveXcombobox在相同的地方,而不是像我想要的button上方的单元格。 再次感谢。

Sub AddFitting() ' ' AddFitting Macro ' ' Range("FittingRow").Select Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Range("FittingCell").Select ActiveCell.Offset(-1, 0).Range("A1").Select ActiveSheet.OLEObjects.Add(ClassType:="Forms.ComboBox.1", Link:=False, _ DisplayAsIcon:=False, Left:=0, Top:=346.5, Width:=120, Height:=15.75) _ .Select With Selection .Placement = xlMoveAndSize .PrintObject = True End With ActiveCell.Offset(0, 2).Range("A1").Select ActiveCell.FormulaR1C1 = "'= K value" ActiveCell.Offset(0, -1).Range("A1").Select End Sub 

这是你正在尝试?

 Sub AddFitting() Dim ws As Worksheet Dim rng As Range Set ws = ThisWorkbook.Sheets("Sheet1") With ws .Range("FittingRow").Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove Set rng = .Range("FittingCell").Offset(-1, 0) With .OLEObjects.Add(ClassType:="Forms.ComboBox.1", link:=False, _ DisplayAsIcon:=False, Left:=rng.Left, Top:=rng.Top, _ Width:=rng.Width, Height:=rng.Height) .Placement = xlMoveAndSize .PrintObject = True End With rng.Offset(, 2).FormulaR1C1 = "'= K value" End With End Sub