我想使用VBA将Excel电子表格中插入的图片复制到Image对象。这是我尝试的代码:

Dim logo As Image
Set logo = New Image
logo.Picture = ThisWorkbook.Sheets("Sheet1").Pictures("Picture1")

最后一行因类型不匹配错误而失败。当我在监视窗口中查看logo.Picture时,它被列为Picture类型;当我在等号右边的表达式中分配一个Object变量时,它被列为Picture/Picture类型。我对VBA对象层次结构还不太熟悉,无法知道这些类型是否相关,也不知道如何从一种转换为另一种,尽管谷歌进行了艰苦的搜索,却找不到任何相关信息。

如果我用这替换最后一行:
logo.Picture = LoadPicture(ThisWorkbook.Path & "\Logo.bmp")

文件加载,我程序的其余部分正常工作。除了在将图像导出到文件然后使用LoadPicture导入到Image对象的建议外,我在这里和其他地方搜索了很多帖子,但没有发现任何有用的东西。关于如何从工作表中获取图片而不是文件的任何建议?

如果需要解决的话,其余代码将logo.Picture.Handle用作GDI位图HANDLE,并将其传递给外部库以在外部设备上显示图像。如果有办法从另一个对象获取GDI位图HANDLE,那也可以。

最佳答案

而是将其定义为Object,并使用Set将图像分配给它:

Dim Logo As Object
Set Logo = ThisWorkbook.ActiveSheet.Pictures("Picture 1")

关于excel - 将图片从Excel形状复制到VBA中的“图像”对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42659200/

10-17 00:55
查看更多