excel宏-表格通过图片的网络路径下载展示图片
1、原理
通过图片的网络路径,将图片下载到本地,excel读取本地路径,显示图片。
注意:下载的图片路径改变将无法展示
2、准备
2.1、excel版本
MS_Office_2016
2.2、excel开启宏
选项 -》信任中心 -》 信任中心设置 -》 宏设置 -》启用所有宏
2.3、另存为宏文件
表格数据
另存为宏文件
3、宏编程
-
打开宏文件
-
Alt + F11 : 打开宏编辑器,新建模块,复制以下代码
copySub DownloadAndShowImages()
Dim ws As Worksheet
Dim cell As Range
Dim pic As Picture
' 修改为你的图片链接所在的工作表
Set ws = ThisWorkbook.Sheets("Sheet1")
For Each cell In ws.Range("C2:C" & ws.Cells(ws.Rows.Count, "C").End(xlUp).Row)
' 下载图片到本地缓存,使用第一列的内容作为文件名
Dim fileName As String
fileName = "C:\Temp\" & cell.Offset(0, -2).Value & ".jpg"
DownloadImage cell.Value, fileName
' 在工作表中插入图片
Set pic = ws.Pictures.Insert(fileName)
' 调整图片大小和位置,根据需要修改
pic.Top = cell.Top
pic.Left = cell.Offset(0, 1).Left
pic.Width = 100 ' 修改为适当的宽度
pic.Height = 100 ' 修改为适当的高度
Next cell
End Sub
Sub DownloadImage(url As String, savePath As String)
Dim objXML As Object
Dim objHTTP As Object
Dim oStream As Object
' 创建文件夹(如果不存在)
If Dir("C:\Temp\", vbDirectory) = "" Then
MkDir "C:\Temp\"
End If
Set objXML = CreateObject("MSXML2.ServerXMLHTTP")
Set objHTTP = CreateObject("WinHttp.WinHttpRequest.5.1")
objXML.Open "GET", url, False
objXML.send ""
If objXML.Status = 200 Then
Set objHTTP = CreateObject("MSXML2.ServerXMLHTTP")
objHTTP.Open "GET", url, False
objHTTP.send ""
If objHTTP.Status = 200 Then
Set oStream = CreateObject("ADODB.Stream")
oStream.Open
oStream.Type = 1
oStream.Write objHTTP.responseBody
oStream.SaveToFile savePath, 2 ' 1: 不覆盖, 2: 覆盖
oStream.Close
End If
End If
Set objXML = Nothing
Set objHTTP = Nothing
Set oStream = Nothing
End Sub
- 保存关闭,Alt + F8, 选择宏执行
- 结果下载图片,展示图片
分类:
other
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
2023-01-19 15个超强的jQuery/HTML5图片轮播插件(链接)
2023-01-19 html css js 手写简易轮播图
2021-01-19 Laravel 创建自己的 Facade(转)