【问题标题】:Insert Property of Picture Class图片类的插入属性
【发布时间】:2015-09-10 21:14:18
【问题描述】:

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

我在 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 会生成无法运行的宏?更重要的是,我怎样才能避免这个错误并继续我的工作!?谢谢!

【问题讨论】:

    标签: image vba excel


    【解决方案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
    

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

    结果:

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

    【讨论】:

    • 很好奇...我完全复制并粘贴了您的代码,它给了我一个运行时错误:“找不到指定的文件。”在AddPicture 线上。
    • 你在使用http://ecx.images-amazon.com/images/I/51mXQ-IjigL._SL160_.jpg吗?不要使用那个,使用从你的宏中记录的原始那个。
    • 好奇又好奇,亲爱的华生。如果您使用适合您的 URL 怎么办?因为在我这边,您的工作 URL 正在抛出 specified file... 错误。
    • 微软的某个人只是在捉弄我们什么的,因为当我使用时:http://ecx.images-amazon.com/images/I/51mXQ-IjigL._SL160_.jpg 它工作正常,但是当我使用 http://ecx.images-amazon.com/images/I/41u+ilIi00L._SL160_.jpg 时它就坏了......
    • 不会对巨魔感到惊讶。 Excel 2013 和 Windows 8 无论如何都是拖钓的完美示例。 ;) 希望这会有所帮助,即使它不是一个完美的答案。 :)
    【解决方案2】:

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

    您可以使用 Fiddler 轻松测试。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-03
      • 1970-01-01
      相关资源
      最近更新 更多