txt插入一行_Excel批量插入图片,并设置图片超链接

问题描述:

有上百张店铺的商品描述图,需要根据图片名称插入Excel表格相应的位置,并为图片设置商品详情页的超链接(实现点击图片,跳转到商品详情页)。

0166efe09b92318b5c05fb61007fdad6.png

超链接跳转:

19210f56efb3261b1198ca5db0d4ef9d.gif

涉及知识点:

  • 批量插入图片

  • 为图片设置超链接

代码及详解:

Sub 插入图片()    Application.ScreenUpdating = False    '关闭屏幕刷新,加快运行速度    Call deletepic    '清除表格中已有图片    picpath = ThisWorkbook.Path & "\图片\"    '图片存放的路径,这里是把图片放在了代码工作簿路径下的【图片】文件夹中    For i = 2 To ActiveSheet.Cells(Rows.Count, 1).End(3).Row    '开始循环插入图片,第一行是标题行,所以从第二行开始循环。        Set Rng = ActiveSheet.Cells(i, 2)        '插入图片的单元格赋值给对象变量rng        j = picpath & ActiveSheet.Cells(i, 1) & ".jpg"        '把图片路径赋值给变量j        If IsFileExists(j) Then        '利用自定义函数判断判断下图片文件是否存在,存在的时候才插入图片,否则会报错。            Set pic = ActiveSheet.Shapes.AddPicture(j, True, True, Rng.Left, Rng.Top, Rng.Width, Rng.Height) '插入图片            '使用AddPicture方法,将图片插入单元格,并将图片的大小设置成和单元格一致。填满整个单元格区域。            ActiveSheet.Hyperlinks.Add Anchor:=pic, Address:="http://item.taobao.com/item.htm?id=" & ActiveSheet.Cells(i, 1)            '位图片设置网址超链接            pic.Placement = xlMoveAndSize            '设置属性大小位置均随单元格变化        End If    Next    '结束For循环    Application.ScreenUpdating = True    '开启屏幕刷新    MsgBox "完成!"End SubFunction IsFileExists(ByVal strFileName As String) As Boolean    If Dir(strFileName, 16) <> Empty Then        IsFileExists = True    Else        IsFileExists = False    End IfEnd FunctionSub deletepic()    For Each shp In ActiveSheet.Shapes    '对活动工作表中所有的shape对象进行遍历        If shp.Type = 11 Then        '如果shape对象类型是【带有超链接的图片】,则删除。            shp.Delete        End If    NextEnd Sub

判断文件是否存在很有必要,因为不可能保证所有的ID都能找到对应的图片。

  • 判断文件是否存在

Function IsFileExists(ByVal strFileName As String) As Boolean      If Dir(strFileName, 16) <> Empty Then          IsFileExists = True      Else          IsFileExists = False      End If  End Function    Sub Run()      If IsFileExists("D:\vba\abc.txt") = True Then      ' 文件存在时的处理          MsgBox "文件存在!"      Else      ' 文件不存在时的处理          MsgBox "文件不存在!"      End If  End Sub
  • 关于AddPicture和Pictureinsert

Excel2010版本以及以后,Pictureinsert只能插入链接,图片不能随文件一起保存,所以建议用AddPicture方法插入图片。

推荐阅读: (点击下方标题即可跳转)
  • 【建议收藏】VBA说历史文章汇总
  •  速码工具箱2.0发布,更强大的功能等你来体验!
  •  VBA会被Python代替吗?
  •  代码存储美化工具测评-【VBE2019】
  •  Excel和Word数据交互读取(生成合同)

d9c3bbc6fcc1a9bf3d58cb76cdc623f9.png

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值