VBA自学应用(4)——批量导出图片到指定文件夹

今日表格中有很多图片,老板要我把图片全部保存到一个文件夹下。这点小事岂能难倒我?
于是我打开Excel表格,拉到了最后面
在这里插入图片描述
我勒个擦,有一千多个。没事,我还有VBA秘籍!具体情况如图所示
在这里插入图片描述
于是我默默打开了VBE编辑器,输入了如下代码:

Private Sub CommandButton1_Click()
'注意,如果存在重名的,那么就会把原来的给覆盖
    With Application.FileDialog(msoFileDialogFolderPicker)
        .AllowMultiSelect = False
        .Show
        If .SelectedItems.Count > 0 Then
            apath = .SelectedItems(1)
        Else
            MsgBox "请选择保存目录": Exit Sub
        End If
    End With
    Dim shp As Shape
    Dim cht As ChartObject
    k = 21
    For Each shp In ActiveSheet.Shapes
        If shp.Type = msoPicture Then
        '排除其他shape
            a = shp.TopLeftCell.Address
            b = shp.BottomRightCell.Address
            '得到图片上下界
            Set Rng = Range(a, b)
100:
            k = k + 1
            Cells(k, "C").Select
            If Intersect(ActiveCell, Rng) Is Nothing Then GoTo 100
            '只有在单元格里面才会导出
            shp.Copy
            Set cht = ActiveSheet.ChartObjects.Add(0, 0, shp.Width, shp.Height)
            '创建新的嵌入式图表
            cht.Select
            '如果没有这句将会导出空白的图片文件
            With cht.Chart
                .Paste
                .Export apath & "\" & Cells(k, 2) & ".png"
                'export
                .Parent.Delete
                '删除添加的图表对象
            End With
        End If
    Next
    Set shp = Nothing
    Set cht = Nothing
    MsgBox "完毕!图片已保存到" & apath
End Sub

收工!摸鱼工资到手!

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

star星梦

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值