Vba 不使用形状复制嵌入图像

Vba 不使用形状复制嵌入图像,vba,excel,Vba,Excel,我有一个工作簿,其中有许多具有随机名称和任意顺序的工作表和图像,我需要的唯一图像始终在A2:C14范围内,我使用以下代码复制图像: firstSheet.Range("A2:C14").Copy secondSheet.Range("I6").PasteSpecial 但它只复制单元格文本,而不复制图像。 有没有一种方法可以使用范围(“A2:C14)”复制图像,或者用另一种方法选择要复制图像的单元格?因为CopyPicture是形状对象的一种方法,除非您已经有指向它的指针,否则使用形状集合是不

我有一个工作簿,其中有许多具有随机名称和任意顺序的工作表和图像,我需要的唯一图像始终在A2:C14范围内,我使用以下代码复制图像:

firstSheet.Range("A2:C14").Copy
secondSheet.Range("I6").PasteSpecial
但它只复制单元格文本,而不复制图像。

有没有一种方法可以使用
范围(“A2:C14)”
复制图像,或者用另一种方法选择要复制图像的单元格?

因为
CopyPicture
是形状对象的一种方法,除非您已经有指向它的指针,否则使用形状集合是不可避免的

像这样的

Sub Demo()
    Dim shp As Shape
    Dim rng As Range

    Set rng = firstSheet.Range("A2:C14")
    For Each shp In firstSheet.Shapes
        If Not Intersect(rng, shp.TopLeftCell) Is Nothing Then
            ' Found it
            shp.CopyPicture
            secondSheet.Range("I6").PasteSpecial

            Exit Sub
        End If
    Next
End Sub

AFAIK唯一的方法是循环浏览形状并测试
.TopLeftCell=Range(“A2”)
,以找到要复制的形状。@ScottHoltzman使用形状非常简单。。。但是他不想用它。。。知道它是一个形状,我不知道你怎么做…@DirkReichel-是的,我知道。编辑我的评论以使我的思想更加清晰:)我在寻找更简单的东西。我发现了方法
.CopyPicture
,它做了我想做的事情,但是在它完成所有工作表之前,我得到了错误“PasteSpecial method of Range class failed”,该方法几乎完成了任务。@ScottHoltzman这是答案,你应该这样发布它。操作说明:
CopyPicture
是一种
形状
对象的方法。因此,除非他已经有了指向它的指针,否则使用
Shapes
集合将不可避免地击败我将其作为答案发布:)要添加到答案中,引用形状的单元格位置的唯一方法是通过形状,在其中您还需要引用形状集合。无需道歉。只是得到了正确的答案;)非常感谢你们的帮助,斯科特和克里斯。