Excel Vba代码获取指定区域内的所有shape对象

2019-10-28 15:23:00
tmtony8
原创
101

在Excel里,希望选取某个工作表中指定区域的所有形状对象

运行代码,选中A1:D10 区域中的所有shape对象


Sub main()
    Dim Sh1(1 To 100) As String  '定义数组,用于存放shape名
    Dim sh As Shape
    Dim i As Integer
    With ActiveSheet
        For Each sh In .Shapes '遍历所有的Shape对象
            If Not Application.Intersect(sh.TopLeftCell, .Range("A1:D10")) Is Nothing Then '   判断Shape对象是否在指定的A1:D10区域中
                i = i + 1  '统计总共有多少个形状
                Sh1(i) = sh.Name   '将Shape名保存在数组
            End If
        Next sh
    End With
    ActiveSheet.Shapes.Range(Sh1).Select '选中Sh1中存放的Shape
End Sub


    分享