快速实现将Excel表格图片地址url替换为图片 |
您所在的位置:网站首页 › 怎么把英文图片变成文档形式的 › 快速实现将Excel表格图片地址url替换为图片 |
最近接到一个需求,大致是通过腾讯文档的在线收集表,利用“健康码和行程码收集”模版方式收集用户行程信息,腾讯文档可以通过图片自动识别内容,判断是否有风险。再通过关联导出表格,即可在本地预览。 但是导出的文件有个问题,因为用户上传图片的字段都是图片的url地址,在本地查看就需要点击链接进入浏览器查看,非常不方便。所以就需要想办法把url地址替换为对应的图片,经过资料查找,大致找到两种方法。 方式一:文本转换并替换#在对应的图片url列旁边新增一列在新增列填充公式="上脚本代码,里面把注释也加上了,方便读明白 ' 将列数字编号转变为字母 Function Col_Letter(lngCol As Long) As String Dim vArr vArr = Split(Cells(1, lngCol).Address(True, False), "$") Col_Letter = vArr(0) End Function ' 将url转换为图片,并插入到原位置 Sub url2img() ' 定义图片宽度 w = 120 ' 获取最后一行的行号, Rows.Count = 1048576 lastRow = ActiveSheet.Range("A" & Rows.Count).End(xlUp).Row ' 获取最后一列的编号 lastColumn = Col_Letter(Cells(1, Columns.Count).End(xlToLeft).Column) ' ActiveSheet.Name 是指当前活动的工作表的名称 For Each c In Worksheets(ActiveSheet.Name).Range("A1:" & lastColumn & lastRow).Cells ' 如果值包含docs.qq.com,则将其转换为图片 If InStr(1, c.Value, "docs.qq.com/image/") > 0 Then ' 将单元格位置分割为行号和列号,c.Address是形如'$D$2'格式,分割后pos(1)是列号,pos(2)是行号 pos = Split(c.Address, "$") ' 当前单元格位置,格式为'D2' cell = c.Address(False, False) ' 多张图片时,图片地址是按照换行符分割的,这里对其做一下拆分 Larray = Split(c.Value, vbNewLine) ' 获取单元格内图片数量 count = UBound(Larray) - LBound(Larray) + 1 i = 0 ' 先将单元格内容清除 Range(cell).ClearContents For Each v In Larray ' 当前列区域 col = pos(1) & ":" & pos(1) row = pos(2) & ":" & pos(2) ' 选中单元格 Range(cell).Select ' 插入图片 ActiveSheet.Pictures.Insert(v).Select ' 设置图片宽度 Selection.ShapeRange.Width = w h = Application.Ceiling(Selection.ShapeRange.Height, 1) ' 设置图片位置 Selection.ShapeRange.Left = Range(cell).Left + i * (w + 5) ' 设置单元格宽度 realWidth = Count * (w + 5) / 5 If Columns(col).ColumnWidth Visual Basic编辑器 |
今日新闻 |
点击排行 |
|
推荐新闻 |
图片新闻 |
|
专题文章 |
CopyRight 2018-2019 实验室设备网 版权所有 win10的实时保护怎么永久关闭 |