Excel Can';除非图片以前在自己的工作簿中被引用过,否则不要引用其他工作簿中的图片?

Excel Can';除非图片以前在自己的工作簿中被引用过,否则不要引用其他工作簿中的图片?,excel,vba,Excel,Vba,我有一个简单的问题:有两个工作簿,Book1和Book2,在每个工作簿的第一个工作表中都有一个图像控件,它们都称为Image1。但是,Book1中的Image1有图片,而Book2中的Image1没有图片。因此,我在Book2的Sheet1下编写以下代码: Private Sub Image1_Click() Image1.Picture = Workbooks("Book1").Worksheets(1).Image1.Picture End Sub 不幸的是,这会导致一个错误:

我有一个简单的问题:有两个工作簿,
Book1
Book2
,在每个工作簿的第一个工作表中都有一个
图像控件
,它们都称为
Image1
。但是,
Book1
中的
Image1
有图片,而
Book2
中的
Image1
没有图片。因此,我在
Book2
Sheet1
下编写以下代码:

Private Sub Image1_Click()
     Image1.Picture = Workbooks("Book1").Worksheets(1).Image1.Picture
End Sub
不幸的是,这会导致一个错误:

错误438(对象不支持此属性或方法)

然而,有趣的是,我在
Book1
Image2
)中创建了另一个图像控件,然后运行以下代码:

Private Sub Image2_Click()
     Image2.Picture = Image1.Picture
End Sub
这段代码不仅起作用了,而且当我回到
Book2
运行之前失败的代码时,它起作用了

是否必须先在本地引用图片,然后才能由外部工作簿引用?如果是这样的话,有解决方法吗?

试试这个

Private Sub Image1_Click()
     Image1.Picture = Workbooks("Book1").Worksheets(1).OLEObjects("Image1").Object.Picture
End Sub
试试这个

Private Sub Image1_Click()
     Image1.Picture = Workbooks("Book1").Worksheets(1).OLEObjects("Image1").Object.Picture
End Sub

您的第一个代码块第一次为我工作:图像从Book2复制到Book1@TimWilliams请问您使用的是哪个版本的Excel?我正在使用2010。您的第一个代码块第一次为我工作:图像从Book2复制到Book1@TimWilliams请问您使用的是哪个版本的Excel?我正在使用2010。