【发布时间】:2018-01-19 14:12:31
【问题描述】:
以下代码适用于大多数图像 URL,但对于这个特定 URL,我收到错误:
Sub test()
Sheets(1).Shapes.AddPicture "https://images-na.ssl-images-amazon.com/images/M/MV5BYzVlY2JiODctNGMzNC00OWE5LTg3MTEtNDQ3NDYxNjIxNTBiXkEyXkFqcGdeQXVyNTM3MDMyMDQ@._V1_.jpg" _
, msoFalse, msoTrue, 100, 100, 500, 600
End Sub
运行时错误“1004”:找不到指定的文件
是否由指定此特定 URL 字符串的方式引起(与 VBA 不兼容)?还是您认为这与主机阻止访问有关?谢谢。
【问题讨论】:
-
我的猜测是他们(亚马逊)正在限制对它的访问,把它当作你“盗链”到他们的图像,从而“窃取他们的带宽” - 如果你循环该代码,你会破坏他们的服务器。来自同一服务器的其他图片是否适合您?
-
谢谢,我不认为来自同一服务器的以下 URL 可以正常工作:(images-na.ssl-images-amazon.com/images/I/…) 使用上面的代码。我怀疑它与所需 URL 中字符串的最后一部分有关,特别是; “MDQ@._V1_.jpg”不兼容,虽然我可能是错的。
-
我用您的代码尝试了该 URL,并且与其他图像有相同的错误。
-
这很奇怪,因为即使在我的新 Excel 实例上它也能正常工作。更奇怪的是,如果我在没有 VBA 的情况下手动执行初始 URL 的过程(单击插入图片 -> 指定原始 url -> 单击打开),它工作正常!所以似乎完全与 VBA 相关。
-
可能需要对字符进行编码:
https://images-na.ssl-images-amazon.com/images/M/MV5BYzVlY2JiODctNGMzNC00OWE5LTg3MTEtNDQ3NDYxNjIxNTBiXkEyXkFqcGdeQXVyNTM3MDMyMDQ%40._V1_.jpg
标签: vba excel web-scraping