最近在做一个项目的时候,发现用vba代码删除单元格区域内容时无法将放置在其上的图形对象同步删除。
这主要是由于该图形对象非excel内置形状,而是从外部插入的CAD等外来图形。
这时候提供一种思路:先获取要删除的单元格区域,然后遍历图形对象,判断图形对象是否位于该单元格区域内,如果是,则删除它,最后再删除单元格区域。
以下是一个示例代码:
Sub exceloffice() '作者QQ:1722187970,微信:xycgenius,公众号:水星Excel Dim owk As Worksheet Set owk = Excel.ActiveSheet With owk Dim oRng As Range Set oRng = .Range("a1:g15") Dim osp As Shape For Each osp In .Shapes If Not (Excel.Application.Intersect(osp.TopLeftCell, oRng) Is Nothing) Then osp.Delete End If Next Debug.Print oRng.Address oRng.Delete End With End Sub
发表评论