Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Image Picture类的Insert属性_Image_Vba_Excel - Fatal编程技术网

Image Picture类的Insert属性

Image Picture类的Insert属性,image,vba,excel,Image,Vba,Excel,我已经阅读了所有关于这个话题的问题,没有一个能为我提供一个可行的解决方案,所以我要问这个问题 我正在Windows 7中运行Excel 2013的合法副本。我在插入图片的地方录制了一个宏,并在“打开文件”对话框中粘贴此URL:http://ecx.images-amazon.com/images/I/41u%2BilIi00L._SL160_.jpg(只是亚马逊上的一张产品图片)。这正如预期的那样有效 生成的宏如下所示: Sub insertImage() ' ' percent Macro '

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

我正在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
解析为
+
。我试着做出改变,但没有成功

另一件值得注意的有趣的事情是,有时这确实有效,有时则无效。此url不起作用。这里有一个例子:
http://ecx.images-amazon.com/images/I/51mXQ-IjigL._SL160_.jpg

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

尝试以下解决方法:

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将返回本讨论中提到的确切错误消息


您可以使用。

好奇。。。我准确地复制并粘贴了您的代码,它给了我一个运行时错误:“找不到指定的文件。”在
AddPicture
行上。您正在使用
http://ecx.images-amazon.com/images/I/51mXQ-IjigL._SL160_.jpg
?不要用那个,用你的宏记录的原始的。好奇的,好奇的,呃,亲爱的沃森。如果你使用为你工作的URL怎么办?因为在我这方面,你的工作URL抛出了
指定的文件…
错误。Microsoft有人在跟踪我们或其他原因,因为当我使用:
http://ecx.images-amazon.com/images/I/51mXQ-IjigL._SL160_.jpg
它工作正常,但是当我使用
http://ecx.images-amazon.com/images/I/41u+ilIi00L.\u SL160\u.jpg
它坏了……巨魔不会感到惊讶。Excel 2013和Windows 8都是拖拉的完美例子希望这有帮助,即使这不是一个完美的答案。:)