我可以使用VBA将图像(GIF)从networking导入到Excel中吗?

我有一个Excel表格中的.gif文件的URL列表。 我想使用VBA来查询这些网站,并将这些图像插入到同一个工作表中。 我正在使用Excel 2007。

我尝试使用“获取外部数据 – 从Web”function来查询网站,但它返回了以下错误:

“无法打开http://…/blah.GIF。Internet站点无法返回您请求的对象(HTTP / 1.0 403)”

这是因为Excel无法导入带有此function的在线图像? 或者是这个问题具体涉及到网站?

最重要的是,还有其他的方法可以完全在VBA中完成吗?

是的,你可以这样做。 其实很简单。 Excel有一个AddPicture函数。 从Excel VBA帮助:

expressionAddPicture(Filename,LinkToFile,SaveWithDocument,Left,Top,Width,Height)

像这样使用:

Sheets(1).Shapes.AddPicture "http://www.mywebsite.com/images/map.gif" _ , msoFalse, msoTrue, 100, 100, 500, 600 

左,顶部,宽度和高度都是必需的和点。

首先你要下载图像。 有几种方法可以做到这一点。 我使用URLDownloadToFile API。

使用URLDownloadToFile API函数从URL下载文件到文件 *中:

 Private Declare Function URLDownloadToFile Lib "urlmon" _ Alias "URLDownloadToFileA" (ByVal pCaller As Long, _ ByVal szURL As String, ByVal szFileName As String, _ ByVal dwReserved As Long, ByVal lpfnCB As Long) As Long 

(*完整的代码访问链接)

然后像这样的代码示例将它们导入到工作表中,只要你喜欢:

在Microsoft Excel *中使用VBA插入图片 :

 Sub TestInsertPicture() InsertPicture "C:\FolderName\PictureFileName.gif", _ Range("D10"), True, True End Sub 

(*完整的代码访问链接)

为了公平对待原作者,我不会在这里重新发布代码。 道歉主要是基于链接的答案。