VBA插入图片到工作表(基于给定的图片URL)

案例应用场景

电商,数据库里能拉取对应的商品图片url,业务测想查看商品图片,这里记录下简短代码块;可以在插件功能区设置两个简易的按钮,用户可以点击单个url转化,或者批量转化。

在这里插入图片描述

代码demo

1. 添加图片

Sub url_to_picture(control As IRibbonControl)
' 下载单个图片,该样例为excel功能区回调程序案例
' 样例url
' https://pics4.baidu.com/feed/314e251f95cad1c8dd6c162f5b8c5b07c83d5127.jpeg
Dim rng As Range
If Selection.Cells.Count = 1 And InStr(Selection.Value, "http") > 0 Then
    Set rng = Selection
    rng.EntireRow.RowHeight = 200
    rng.Offset(0, 1).EntireColumn.ColumnWidth = 25
    url_string = rng.Value
    With ActiveSheet
        On Error GoTo line1
        Set pic = .Pictures.Insert(url_string)    ' 添加图片到工作表
        On Error GoTo 0   ' 恢复报错
        ' 如果成功插入图片
        If Not pic Is Nothing Then
            ' 设置图片位置
            With pic
                .Top = rng.Top
                .Left = rng.Offset(0, 1).Left
                .height = rng.Offset(0, 1).height
                ' .width = rng.Offset(0, 1).width
            End With
        End If
    End With
End If
End     ' 程序无异常,此处结束
line1:
MsgBox "请先点击url所在单元格(一个)再点击该按钮加载图片" & Chr(10) & "加载前请确认url是否有效", vbInformation, "温馨提示"

End Sub

如果批量转化,可以在url单元格所在列的右侧插入一列(比如在第三列插入一列:columns(3).insert),然后把图片放在右侧这一列,设置对齐;

2. 清空工作表所有图片

Sub DeleteAllPictures(control As IRibbonControl)
    Dim pic As Shape
    
    ' 遍历工作表中的所有形状
    For Each pic In ActiveSheet.Shapes
        ' 检查形状是否为图片
        If pic.Type = msoPicture Or pic.Type = msoLinkedPicture Or pic.Type = msoEmbeddedOLEObject Then
            ' 删除图片
            pic.Delete
        End If
    Next pic
End Sub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值