插入图片类的属性

时间:2013-12-06 04:24:02

标签: excel image vba excel-vba

我已经阅读了关于这个主题的所有问题,但没有一个为我提供了可行的解决方案,所以我问这个问题。

我在Windows 7中运行Excel 2013的合法副本。我在插入图片时记录了一个宏,在打开的文件对话框中,我粘贴了这个URL:http://ecx.images-amazon.com/images/I/41u%2BilIi00L._SL160_.jpg(只是产品的图片)亚马逊)。这可以按预期工作。

生成的宏看起来像这样:

Sub insertImage()
'
' percent Macro
'

'
    ActiveSheet.Pictures.Insert( _
        "http://ecx.images-amazon.com/images/I/41u+ilIi00L._SL160_.jpg").Select
End Sub

但是,当我尝试运行此行时,Insert行会出现以下错误:

Run-time error '1004':

Unable to get the Insert property of the Picture class

我正在尝试将一些图片插入到Excel文档中,并且我使用ActiveSheet.Pictures.Insert方法执行此操作。我一直在那里遇到这个问题,所以我以其他人可以复制的方式重新创建它以方便得到答案......

有趣的是:

http://ecx.images-amazon.com/images/I/41u%2BilIi00L._SL160_.jpg 'This is what I pasted
http://ecx.images-amazon.com/images/I/41u+ilIi00L._SL160_.jpg 'This is what the recorded macros recorded

看起来Excel会自动将%2B解析为+。我尝试做出改变,但没有成功。

另一个有趣的事情是,有时这确实有效,有时却没有。这个网址是不起作用的情况。这是它的作用:http://ecx.images-amazon.com/images/I/51mXQ-IjigL._SL160_.jpg

为什么Excel会生成无法运行的宏?更重要的是,我怎样才能避免这个错误并继续我的工作!?谢谢!

1 个答案:

答案 0 :(得分:1)

尝试此解决方法:

Sub RetrieveImage()
Dim wsht As Worksheet: Set wsht = ThisWorkbook.ActiveSheet
wsht.Shapes.AddPicture "http://ecx.images-amazon.com/images/I/41u+ilIi00L._SL160_.jpg", _
                    msoFalse, msoTrue, 0, 0, 100, 100
End Sub

所有字段都是必需的,因为您无法获得默认大小,这有点令人失望。位置偏移和大小以像素/点为单位。此外,%转向+也没问题,因为%会导致无法识别它(不知道为什么)。

结果:

enter image description here

如果有帮助,请告诉我们。