Note: The other languages of the website are Google-translated. Back to English

如何在Excel中将图像URL转换为实际图像?

doc url到img 1

如果现在在A列中有一个图像URL地址列表,那么您想从URL下载相应的图片,并将其显示在相邻的B列中,如左图所示。 在Excel中,如何快速,轻松地从图像URL中提取实际图片?

使用VBA代码将图像URL转换为实际图像

使用Kutools for Excel将图像URL转换为实际图像


使用VBA代码将图像URL转换为实际图像

以下VBA代码可以帮助您从图片URL地址中快速提取实际图片,请按以下步骤操作:

1。 按住 ALT + F11 键以打开“ Microsoft Visual Basic应用程序”窗口。

2。 点击 插页 > 模块,然后将以下代码粘贴到“模块窗口”中。

VBA代码:将图像URL转换为实际图像:

Sub URLPictureInsert()
Dim Pshp As Shape
Dim xRg As Range
Dim xCol As Long
On Error Resume Next
Application.ScreenUpdating = False
Set Rng = ActiveSheet.Range("A2:A5")
For Each cell In Rng
filenam = cell
ActiveSheet.Pictures.Insert(filenam).Select
Set Pshp = Selection.ShapeRange.Item(1)
If Pshp Is Nothing Then GoTo lab
xCol = cell.Column + 1
Set xRg = Cells(cell.Row, xCol)
With Pshp
.LockAspectRatio = msoFalse
If .Width > xRg.Width Then .Width = xRg.Width * 2 / 3
If .Height > xRg.Height Then .Height = xRg.Height * 2 / 3
.Top = xRg.Top + (xRg.Height - .Height) / 2
.Left = xRg.Left + (xRg.Width - .Width) / 2
End With
lab:
Set Pshp = Nothing
Range("A2").Select
Next
Application.ScreenUpdating = True
End Sub

笔记: 

  • 1.在上面的代码中, A2:A5 是包含您要提取图像的URL地址的单元格范围,则应根据需要更改单元格引用。
  • 2.使用此代码,您将无法根据需要指定提取图像的大小。
  • 3.上面的代码只能将实际图像提取到URL列之外的单元格中,您不能指定要输出图像的单元格。
  • 4.您应该对代码有一些基本的了解,如果任何字符丢失或不正确,则代码将无法成功执行。

3。 然后按 F5 键以运行此代码,并且所有对应的图片都已从图片网址中一次提取到相邻列中,并且这些图片将放置在您特定单元格的中央,请参见屏幕截图:

doc url到img 2


使用Kutools for Excel将图像URL转换为实际图像

如果您不熟悉VBA代码或想弥补上述代码的局限性, Kutools for Excel's 插入图片表格路径(URL) 该功能可帮助您根据计算机中的URL地址或特定路径快速插入对应的图像,如下图所示。 点击下载Kutools for Excel!

备注:申请这个 插入图片表格路径(URL),首先,您应该下载 Kutools for Excel,然后快速轻松地应用该功能。

安装后 Kutools for Excel,请这样做:

1。 点击 库工具 > 插页 > 插入图片表格路径(URL),在弹出的对话框中,请设置以下操作,请参见屏幕截图:

doc url到img 3 doc url到img 4

2。 然后,点击 Ok 按钮,图片将从URL中提取,请参见屏幕截图:

doc url到img 1

单击此处立即下载并免费试用Kutools for Excel!


最佳办公效率工具

Kutools for Excel解决了您的大多数问题,并使您的生产率提高了80%

  • 重用: 快速插入 复杂的公式,图表 以及您以前使用过的任何东西; 加密单元 带密码 创建邮件列表 并发送电子邮件...
  • 超级公式栏 (轻松编辑多行文本和公式); 阅读版式 (轻松读取和编辑大量单元格); 粘贴到过滤范围...
  • 合并单元格/行/列 不会丢失数据; 拆分单元格内容; 合并重复的行/列...防止细胞重复; 比较范围...
  • 选择重复或唯一 行; 选择空白行 (所有单元格都是空的); 超级查找和模糊查找 在许多工作簿中; 随机选择...
  • 确切的副本 多个单元格,无需更改公式参考; 自动创建参考 到多张纸; 插入项目符号,复选框等...
  • 提取文字,添加文本,按位置删除, 删除空间; 创建和打印分页小计; 在单元格内容和注释之间转换...
  • 超级滤镜 (将过滤方案保存并应用于其他工作表); 高级排序 按月/周/日,频率及更多; 特殊过滤器 用粗体,斜体...
  • 结合工作簿和工作表; 根据关键列合并表; 将数据分割成多个工作表; 批量转换xls,xlsx和PDF...
  • 超过300种强大功能。 支持Office / Excel 2007-2019和365。支持所有语言。 在您的企业或组织中轻松部署。 完整功能30天免费试用。 60天退款保证。
kte选项卡201905

Office选项卡为Office带来了选项卡式界面,使您的工作更加轻松

  • 在Word,Excel,PowerPoint中启用选项卡式编辑和阅读,发布者,Access,Visio和Project。
  • 在同一窗口的新选项卡中而不是在新窗口中打开并创建多个文档。
  • 每天将您的工作效率提高50%,并减少数百次鼠标单击!
officetab底部
按评论排序
注释 (61)
还没有评分。 成为第一位评论!
该评论由网站上的主持人最小化
您能否将“下一个错误恢复”更改为等到谷歌浏览器有时间打开图片的内容? 我尝试了这段代码并且它可以工作,但是有些图片被粘贴到它们应该在下面的几行中,所以我假设“on error”语句没有给它足够的时间。 如果您认为这可能是其他内容或有任何其他建议,我愿意听取。 谢谢!
该评论由网站上的主持人最小化
这是一个很大的帮助,太棒了
该评论由网站上的主持人最小化
我已经尝试过这个公式,但它似乎不起作用。 是否必须与 Excel 版本有关(不过我有最新版本)感谢您的回答
该评论由网站上的主持人最小化
你遇到什么问题?
该评论由网站上的主持人最小化
运行时错误“1004”:无法获取图片类的插入属性
该评论由网站上的主持人最小化
这对我也不起作用。 我有 Excel 2013,我只需要一段简单的代码,它可以在我的电子表格的一列中的 url 之外插入图像。 我尝试过的每一个可以通过 Google 搜索或 YouTube 获得的解决方案都呈现了图片插入值错误。 我究竟做错了什么??? 网址不应该是超链接吗? 他们应该是超链接吗? 我应该确定输出到的列范围吗? 我在任何地方都找不到简单易懂的说明,请帮忙。 当我使用您的代码时,我得到“无法获取图片的插入属性”类:
该评论由网站上的主持人最小化
我有同样的问题,结果你需要检查你的网址。 如果是 HTTPS,则意味着它是安全连接,VBA 将无法提取它。 如果是普通的 HTTP 应该没有问题
该评论由网站上的主持人最小化
谢谢你。 它对我有用我如何更改/修改语法以显示受密码保护的图像 url
该评论由网站上的主持人最小化
大家好,我已经修改了这些代码,使其适用于所选范围而不是输入特定范围,但是,任何人都可以建议我如何修改这些代码以使图像位于单元格的中心。 目前图片显示在左上角

子 URLPictureInsert()

将 Pshp 调暗为形状

Dim rCell 作为范围

出错时继续下一步

Application.ScreenUpdating = False

对于选择中的每个 rCell

filenam = rCell ActiveSheet.Pictures.Insert(filenam).Select

设置 Pshp = Selection.ShapeRange.Item(1)

使用 Pshp

.LockAspectRatio = msoTrue

.宽度 = 100

.Height = 100

。切

结束

单元格(rCell.Row,rCell.Column + 1).PasteSpecial

下一个 Application.ScreenUpdating = True

END SUB
该评论由网站上的主持人最小化
惊人的! 这太棒了! 我有 350 行超链接,只需 5 分钟即可提取所有图像!
该评论由网站上的主持人最小化
嘿,任何人都可以附上一个启用宏代码的excel表链接,以便我可以下载和实验,我是VB的新手,我非常需要这样做。
该评论由网站上的主持人最小化
对我来说,每个单元格中显示的只是方法的名称。 他们都说“Sub URLPictureInsert()”
该评论由网站上的主持人最小化
效果很好,但谁能帮我添加一些东西来检查图像是否存在,如果不存在,在单元格中发布一个文本,如“图像不可用”?
该评论由网站上的主持人最小化
在 Excel 2010 中,我必须添加这些声明

昏暗范围
将单元格调暗为范围
将文件名变暗为字符串
该评论由网站上的主持人最小化
为了让它在 Excel 2010 中工作,我必须添加这些声明。


昏暗范围
将单元格调暗为范围
将文件名变暗为字符串
该评论由网站上的主持人最小化
有什么方法可以运行它,使其跨越一行而不是一列? 我尝试简单地更改图像的范围和最终位置,但它只会产生第一个单元格。
该评论由网站上的主持人最小化
嗨,泰勒,
可能是下面的 VBA 代码可以帮助您连续提取真实图片的 URL:


子 URLPictureInsert()
将 Pshp 调暗为形状
出错时继续下一步
Application.ScreenUpdating = False
设置 Rng = ActiveSheet.Range("A1:E1")
对于 Rng 中的每个单元格
文件名 = 单元格
ActiveSheet.Pictures.Insert(filenam).Select
设置 Pshp = Selection.ShapeRange.Item(1)
使用 Pshp
.LockAspectRatio = msoTrue
.宽度 = 100
.Height = 100
。切
结束
单元格(cell.Row + 1,cell.Column).PasteSpecial
下一页
Application.ScreenUpdating =真
END SUB

请尝试一下,希望对您有所帮助。 谢谢!
该评论由网站上的主持人最小化
嗨,大家好,
它很想让它工作,但是当我在 VBA 中复制它并点击运行时,我只得到这个文本:
子 URLPictureInsert()
你能帮我获取图片缩略图吗?
该评论由网站上的主持人最小化
你好,
应用代码时,您可以更改图片的宽度和高度大小以匹配您的单元格。
谢谢!
该评论由网站上的主持人最小化
非常适合提取图像,但它们是随机放置的,而不是在预期的单元格中......来自 Office2016 的 Excel 365......
该评论由网站上的主持人最小化
你好,DKcrm,
感谢您的评论,本文代码已更新,请尝试新的,希望对您有所帮助!
该评论由网站上的主持人最小化
谢谢你的帖子。 我怎样才能在单元格的中心获得图片。 使用当前代码,图片显示在左上角
该评论由网站上的主持人最小化
你好,汗,
下面的VBA代码可以帮你把图片提取出来放到单元格的中心,试试看。

子 URLPictureInsert()
将 Pshp 调暗为形状
将 xRg 调暗为范围
将 xCol 调暗
出错时继续下一步
Application.ScreenUpdating = False
设置 Rng = ActiveSheet.Range("A2:A6")
对于 Rng 中的每个单元格
文件名 = 单元格
ActiveSheet.Pictures.Insert(filenam).Select
设置 Pshp = Selection.ShapeRange.Item(1)
如果 Pshp 什么都不是,那么转到实验室
xCol = cell.Column + 1
设置 xRg = Cells(cell.Row, xCol)
使用 Pshp
.LockAspectRatio = msoFalse
如果 .Width > xRg.Width 则 .Width = xRg.Width * 2 / 3
如果 .Height > xRg.Height 则 .Height = xRg.Height * 2 / 3
.Top = xRg.Top + (xRg.Height - .Height) / 2
.Left = xRg.Left + (xRg.Width - .Width) / 2
结束
实验室:
设置 Pshp = 无
范围(“A2”)。选择
下一页
Application.ScreenUpdating =真
END SUB
该评论由网站上的主持人最小化
不能让它工作你能显示这个请求的完整代码吗?
该评论由网站上的主持人最小化
你好,
我想从特定文件夹中的 URL(A 列)下载图像,并使用 B 列中的代码/编号重命名相同的图像。
该评论由网站上的主持人最小化
你好,维平,
要将 URL 的图像保存到文件夹中并使用 B 列中的新名称重命名它们,以下 VBA 代码可能对您有所帮助:

注意:A 列包含 URL 地址,B 列包含新名称。

#如果是 VBA7 那么
Private Declare PtrSafe 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
#别的
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
#万一
子 URLPictureInsert()
将 I 调暗为整数
将 xStr 调暗为字符串
将 xFd 调暗为 FileDialog
将 xArr、xFdItem 调暗为变体
Application.ScreenUpdating = False
设置 xFd = Application.FileDialog(msoFileDialogFolderPicker)
如果 xFd.Show = -1 那么
xFdItem = xFd.SelectedItems.Item(1)
xArr = Range("A2:B5").Value
对于 I = 1 到 UBound(xArr)
如果 xArr(I, 1) <> "" 那么
xStr = Mid(xArr(I, 1), InStrRev(xArr(I, 1), "."), Len(xArr(I, 1)))
URLDownloadToFile 0, xArr(I, 1), xFdItem & "\" & xArr(I, 2) & I & xStr, 0, 0
结束如果
下一页
结束如果
Application.ScreenUpdating =真
END SUB

请尝试一下,希望对您有所帮助!
该评论由网站上的主持人最小化
B列上的重命名部分上传到文件夹中,但在图片名称旁边添加了一个数字,我怎么能省略它?

谢谢
该评论由网站上的主持人最小化
嗨,大卫,
可能是下面的 vba 代码可以帮助您提取 iimage 并重命名它们而不使用子前缀号,请尝试。 希望它可以帮助你!

#如果是 VBA7 那么
Private Declare PtrSafe 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
#别的
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
#万一
子 URLPictureInsert()
将 I 调暗为整数
将 xStr 调暗为字符串
将 xFd 调暗为 FileDialog
将 xArr、xFdItem 调暗为变体
Application.ScreenUpdating = False
设置 xFd = Application.FileDialog(msoFileDialogFolderPicker)
如果 xFd.Show = -1 那么
xFdItem = xFd.SelectedItems.Item(1)
xArr = Range("A2:B5").Value
对于 I = 1 到 UBound(xArr)
如果 xArr(I, 1) <> "" 那么
xStr = Mid(xArr(I, 1), InStrRev(xArr(I, 1), "."), Len(xArr(I, 1)))
URLDownloadToFile 0, xArr(I, 1), xFdItem & "\" & xArr(I, 2) & xStr, 0, 0
结束如果
下一页
结束如果
Application.ScreenUpdating =真
END SUB
该评论由网站上的主持人最小化
我的天啊!! 你只是提供了一个奇迹,它就像一个魅力。 非常感谢。
该评论由网站上的主持人最小化
范围已设置,filenam = url 并且每次传递都会更改,Pshp 总是什么都没有。 有任何想法吗
该评论由网站上的主持人最小化
我使用的是 Intel I5 处理器、Windows 7 Professional 64 位、Office 2016 64 位。 我认为问题是 Excel 中的设置。 任何帮助将不胜感激。
范围已设置,filenam = url 并且每次传递都会更改,Pshp 总是什么都没有,URL 已经过验证,任何想法
该评论由网站上的主持人最小化
嗨,skyyang,首先是这样一个信息丰富的帖子。 我有一个问题,请你帮帮我。 使用您的此代码,我只想提取一张图片并将其放在特定的单元格中。 是否可以??
该评论由网站上的主持人最小化
你好,肖兹布,
要根据需要将图像放入任何其他单元格,请应用以下 VBA 代码:

子 URLPictureInsert1()
'更新通过 Extendoffice 20180608
将 Pshp 调暗为形状
将 xRg 调暗为范围
将 xCol 调暗
出错时继续下一步
Set Rng = Application.InputBox("请选择url单元格:", "KuTools for excel", Selection.Address, , , , , 8)
如果 Rng 什么都不是,则退出 Sub
Set xRg = Application.InputBox("请选择要放图片的单元格:", "KuTools for excel", , , , , , 8)
如果 xRg 什么都不是,则退出 Sub
Application.ScreenUpdating = False
For I = 1 To Rng.Count
文件名 = Rng(I)
ActiveSheet.Pictures.Insert(filenam).Select
设置 Pshp = Selection.ShapeRange.Item(1)
如果 Pshp 什么都不是,那么转到实验室
xCol = cell.Column + 1
设置 xRg = xRg.Offset(I - 1, 0)
使用 Pshp
.LockAspectRatio = msoFalse
.宽度 = 80
.Height = 80
.Top = xRg.Top + (xRg.Height - .Height) / 2
.Left = xRg.Left + (xRg.Width - .Width) / 2
结束
实验室:
设置 Pshp = 无
范围(“A2”)。选择
下一页
Application.ScreenUpdating =真
END SUB

请尝试一下,希望对您有所帮助!
该评论由网站上的主持人最小化
大家好,这个宏很棒。 但是,它并没有真正将图片添加到文件中,而是在我每次打开文件时生成图片的链接。 因此我无法压缩图片,因为它们实际上并不在文件中。 你能帮我把图片真正保存在文件中吗?
该评论由网站上的主持人最小化
你好! 我也有同样的问题。
有没有办法在excel中有效地保存图像? (并且没有链接到外部)
这里还没有评论
加载更多
留下你的意见
以访客身份发帖
×
评价此帖子:
0   产品特性
建议地点