如何从 VBA 绘制矩形并为其分配宏?

And*_*Ion 2 excel vba

这就是我想要做的,我真的不知道该怎么做或者是否可能。我有一列,其中生成了一些值。假设列号为 10。我想要做什么...如果该列中的单元格的值 > 1 我想绘制一个矩形(在下一个单元格中或靠近该单元格)(第 11 列同一行) 并为其分配了一个宏。宏将在单元格所在的位置和将绘制矩形的位置之后插入另一行,因此我必须以某种方式获得矩形的位置。有任何想法吗?非常感谢!

Tim*_*ams 5

Sub Tester()
Dim c As Range

    For Each c In ActiveSheet.Range("A2:A30")
        If c.Value > 1 Then
            AddShape c.Offset(0, 1)
        End If
    Next c

End Sub


Sub AddShape(rng As Range)
    With rng.Cells(1).Parent.Shapes.AddShape(msoShapeRectangle, rng.Left, _
                                    rng.Top, rng.Width, rng.Height)
        .OnAction = "DoInsertAction"
    End With
End Sub

Sub DoInsertAction()
    Dim r As Long
    r = ActiveSheet.Shapes(Application.Caller).TopLeftCell.Row
    ActiveSheet.Rows(r + 1).Insert Shift:=xlDown
End Sub
Run Code Online (Sandbox Code Playgroud)