最近在做一个项目的时候,发现用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


发表评论