首页 > 解决方案 > 使用形状的位置删除行

问题描述

我正在尝试根据形状的位置删除一行。在屏幕截图中,B7 中有一个蓝色形状,我想单击该形状,完全删除该行并将其下方的数据向上移动 1 行。

一旦我有了,我可以在每一行复制形状和随附的宏,以便用户可以删除他们想要的任何名称。

我做了一些搜索并从这段代码开始。

Sub Delete_Borrower()
'Macros ro delete individual borrowers fron dbase
Dim mysht As Worksheet
Dim myDropDown As Shape
Dim MLO As Range
Set mysht = ThisWorkbook.Worksheets("Borrower Database")
CallingShapeName = ActiveSheet.Shapes(Application.Caller).Name
Set MLO = Range(mysht.Shapes(CallingShapeName).TopLeftCell.Address)
MsgBox "OK" & MLO

'Code to delete row and shift rows below up one row

End Sub

在此处输入图像描述

标签: excelvba

解决方案


Sub NoSymbol1_Click()

    Dim r As Range, shp As Shape
    Set r = ActiveSheet.Shapes(Application.Caller).TopLeftCell    'find the range of the button clicked.
    For Each shp In ActiveSheet.Shapes
        If ActiveSheet.Shapes(Application.Caller).TopLeftCell = r.Address Then
            shp.Delete
        End If
    Next shp
    r.EntireRow.Delete

End Sub

推荐阅读