删除图片时VBA类型不匹配错误

时间:2017-03-28 19:55:56

标签: excel vba

尝试删除范围内的所有照片。 我在网上找到了以下代码,但它在行上抛出了类型不匹配错误:

For Each pic In ws.Pictures

非常感谢任何输入或替代代码。

Sub clearPics()
Dim s As String
Dim pic As Picture
Dim rng As Range

Set ws = Worksheets("sort")
Set rng = ws.Range("c:c")

For Each pic In ws.Pictures
    With pic
        s = .TopLeftCell.Address & ":" & .BottomRightCell.Address
    End With
    If Not Intersect(rng, ws.Range(s)) Is Nothing Then
        pic.Delete
    End If
Next

End Sub

谢谢, JJ

2 个答案:

答案 0 :(得分:0)

您已将pic声明为图片。 将Dim pic重命名为Dim pic1之类的其他内容并立即尝试。或者只是删除该行。

我认为正在发生的是pic是类型图片。但是每个ws.pictures作为一个类型返回的内容并不等于图片

答案 1 :(得分:0)

以下代码仅删除表格中的图片。 通过检查Shape.Type = 11获取图片。

Sub clearPics()
Dim shp As Shape

    For Each shp In Worksheets("sort").Shapes

        If shp.Type = 11 Then
                shp.Delete
        End If

    Next shp
End Sub