【问题标题】:Trouble inserting ActiveX control relative to a cell插入相对于单元格的 ActiveX 控件时出现问题
【发布时间】:2014-01-01 17:29:12
【问题描述】:

我正在尝试创建一个 Excel 电子表格,其中包含一个插入行的按钮和一个包含按钮的单元格上方的 ActiveX 组合框。选择按钮以调整单元格的大小并随单元格一起移动。由于每次单击按钮都会移动(因为插入了上面的一行),并且用户可以突出显示工作表上的任何单元格,所以我需要创建一个与按钮单元格相关的宏,而不是活动单元格。我通过命名包含按钮的单元格并记录我自己的宏(选择使用相对引用)在包含按钮的单元格上方插入一行来完成前半部分。然后我将包含 ActiveCell.Select 的宏编辑为 Range ("NamedCell").Select 以便无论用户突出显示哪个单元格,它都会在按钮上方插入一行。

我遇到的问题是如何插入 ActiveX 组合框。生成的代码包含用于定位 ActiveX 组合框的 Left、Top、Width 和 Height。由于每次连续单击和插入的行都会改变高度,因此所有组合框都出现在彼此的顶部。如果这不能发生或需要大量 VBA 代码,请不要担心。通过阅读您对其他人的回复,我已经学到了很多东西。这是我目前拥有的宏,但它每次都将 ActiveX 组合框插入到同一个位置,而不是像我想要的那样在按钮上方的单元格中。再次感谢。

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

【问题讨论】:

    标签: vba excel activex


    【解决方案1】:

    这是你正在尝试的吗?

    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
    

    【讨论】:

    • 是的,效果很好。我试图弄清楚如何相对于单元格定位它。非常感谢您花时间帮助我!不幸的是,我还不能为您的评论点赞,因为我没有 15 点声望点,但我会这样做的。
    • 很高兴它对你有用。顺便说一句INTERESTING READ
    • 谢谢,这很有帮助。有时,当您不确定自己在寻找什么时,很难找到答案,但这绝对是有帮助的。再次感谢。
    猜你喜欢
    • 2018-08-30
    • 2011-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多