如何按指定名称快速导出Excel中的图片?

照例举个例子。如下图所示,工作表中存在多张图片,现在需要将其导出,并按图片向左偏移一个单元格,也就是A列单元格的值进行命名

导出后结果如下图所示:

如果不追求规范图片命名,只是导出Excel中的图片,倒不用VBA代码。将工作簿后缀名修改为rar,双击打开,依次点击xl→media即可。

但如果需要规范图片名称,就优先推荐VBA代码了。参考代码如下:

代码复制运行即可

看不全可以左右拖动..▼

Sub ExportPic()    Dim strPath As String, strPicName As String, strWhere As String, strPicFullName As String    Dim shp As Shape, k As Long, d As Object, x As String, y As Long    With Application.FileDialog(msoFileDialogFolderPicker)       If .Show Then strPath = .SelectedItems(1) Else: Exit Sub    End With    strWhere = InputBox("请输入图片名称相对图片所在单元格的偏移位置,例如上1、下1、左1、右1", , "左1") '用户输入图片相对单元格的偏移位置。    If Len(strWhere) = 0 Then Exit Sub    x = Left(strWhere, 1) '偏移的方向    If InStr("上下左右", x) = 0 Then MsgBox "你未输入偏移方位。": Exit Sub    y = Val(Mid(strWhere, 2)) '偏移的值    Set d = CreateObject("scripting.dictionary")    Application.ScreenUpdating = False    For Each shp In ActiveSheet.Shapes        If shp.Type = msoPicture Then            strPicName = GetPicName(x, y, shp.TopLeftCell)            If Not d.exists(strPicName) Then                d(strPicName) = 1            Else                d(strPicName) = d(strPicName) + 1                strPicName = strPicName & d(strPicName)            End If            strPicFullName = strPath & "\" & strPicName & ".jpg"            shp.Copy            With ActiveSheet.ChartObjects.Add(0, 0, shp.Width, shp.Height).Chart                .Parent.Select                .Paste                .Export strPicFullName, "jpg"                .Parent.Delete            End With        End If    Next    Application.ScreenUpdating = True    MsgBox "导出图片完成!" & Chr(13) & "路径:" & strPath, , "提示"End Sub
Function GetPicName(x As String, y As Long, rngShape As Range) As String    Dim strPicName As String    Select Case x        Case "上"        strPicName = rngShape.Offset(-y, 0).Value        Case "下"        strPicName = rngShape.Offset(y, 0)        Case "左"        strPicName = rngShape.Offset(0, -y)        Case "右"        strPicName = rngShape.Offset(0, y)    End Select    GetPicName = IIf(strPicName = "", "图片", strPicName)End Function
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
图片百宝箱6.2用于在Excel批量插入图片、批量导出图片,批量生成二维码和条形码等,支持Excel 2007、2010、2013、2016、2019和2021,也支持WPS。具体功能如下: 1.批量导入图片:在工作表创建指定路径下的所有图片的目录,支持四种图片格式,可对子文件夹的文件一并创建目录。创建目录时可将图片存放在单元格也还可以放在批注。 2.按名称导入对应图片(支持子目录):选已经有图片名称的所有单元格,然后批量导入对应的图片到右方单元格。导入时支持子文件夹,也就是说图片分散在多个文件夹时,程序会自动找出对应的图片。 3.导入图片到多行多列:在工作表批量导入图片,且显示为多行多列,具体列数可以自定义,图片的高度也可以自定义。 4.导入图片到合并区域:批量导入图片图片名称到工作表,存放图片名称的单元格允许是合并单元格。 5.导入图片并按页面排版:批量导入图片到工作表,并按页面大小排版,从而使打印工作表时每页刚好打印指定数量的图片。 6.插入网络图片:批量插入网络图片到工作表,可以自定义图片显示尺寸 。如果按住Shift键再单击菜单,那么导入图片的同时还会用指列的值对图片自动命名。 7.导出所有图片:将工作表所有图片另存为图片文件,可以自定义保存图片的路径。 8.删除所有图片:删除工作表的所有图片,不删除自选图形、图表和各种控件。 9.对齐图片:将当前表或者所有工作表的图片调整为所有单元格的大小。调整后的图片可以让它随着单元格的大小变化而变化,即修改单元格大小时图片也跟随变化尺寸,也可以让它参与排序和筛选。 10.解除工作表密码:一键解除工作表密码,不管工作表的密码有多复杂。 11.图片预览:只要提前指定图片路径,那么选单元格时,在右方预览窗格会产生图片预览。本方法不插入图片到工作表,因此不会影响工作簿的体积和打开速度。 12.批量生成二维码:根据选区的值批量生成二维码,存放在单元格右方。每行数据生成一个对应的二维码。 13.批量生成条形码:根据选区的值批量生成条形码,存放在单元格右方。每个单元格数值生成一个对应的条形码。支持Code128、Code39、Jan13和Jan8。
以前用Excel2003做了些宏,在网上还有不少粉丝,因一些功能在Excel2010无法使用,故重新整理,欢迎指正; 本Excel的宏在Excel2010测试表现出色; 运行宏前,要保证EXCEL没有禁用宏。 Michael Ho QQ: 9900060 ----------------------- 本Excel有以下功能: 插入图片1 1.点击执行后,会出现文件夹选择窗,请选择你JPG图片所在文件夹(选择“文件夹”而不是选择文件); 2.宏会自动复制Sheet2到新工作簿,并插入你所选文件夹的全部JPG图片到B列,对应的图片名自动填到C列; 3.图片的大小会自动适应Sheet2的B3单元格,因此可以在点击执行前调整Sheet2的B3单元格的大小来控制插入图片的大小。 -------- 插入图片2 1.点击执行后,会出现文件夹选择窗,请选择你JPG图片所在文件夹(选择“文件夹”而不是选择文件); 2.宏会自动复制Sheet3到新工作簿,并插入你所选文件夹的全部JPG图片制作图册,对应的图片名自动填到图片下方; -------- 插入图片3 如果用户自己的Excel文件有一列是型号,该宏可以插入指定文件夹里以型号命名的JPG图片到另一列; 1.打开本Excel文件,不要关闭; 2.再另外打开你自己需要操作的另一个Excel文件,并保持你要操作的工作表做为当前活动工作表; 3.在你的文件按Ctrl+I (或在你的文件手动执行宏,然后选择本EXCEL文件的宏InsertPic3); 4.然后会出现文件夹选择窗,请选择你JPG图片所在文件夹(选择“文件夹”而不是选择文件); 5.在弹出的对话框指定型号在第几列,图片要插入到第几列,以及从哪一行开始; 6.图片的大小会自动适应你设定的第一行要插入图片的单元格,因此提前调整那个单元格的大小可以控制插入图片的大小。 ------------- 删除活动工作表所有图片 Ctrl+d 删除活动工作表里所有的JPG图片,(不一定是本工作簿的工作表); 1.打开本Excel文件,不要关闭; 2.再另外打开你自己需要操作的另一个Excel文件,并保持你要操作的工作表做为当前活动工作表; 3.在你的文件按Ctrl+d (或在你的文件手动执行宏,然后选择本EXCEL文件的宏DelPic); ------------- 导出活动工作表被选的一张JPG图片 Ctrl+e 导出活动工作表被选的一张JPG图片,(不一定是本工作簿的工作表); 1.打开本Excel文件,不要关闭; 2.再另外打开你自己需要操作的另一个Excel文件,并保持你要操作的工作表做为当前活动工作表; 3.请选一张要导出图片; 4.在你的文件按Ctrl+e (或在你的文件手动执行宏,然后选择本EXCEL文件的宏OutputOnePic); 5.在弹出的对话框指定图片要保存的名字; 1.不管图片Excel是否被缩放过,导出图片是按图片的原始尺寸进行保存。 2.在桌面上会自动新建一个"OutputPic"的文件夹,导出图片将会存在那个文夹里; 3.如果文件夹已有相同名字的文件,则后面导出的文件会自动加上(v1), (v2), (v3)... ------------- 导出活动工作表所有JPG图片 Ctrl+f 导出活动工作表所有JPG图片,并且图片名自动使用指定图片名; 1.打开本Excel文件,不要关闭; 2.再另外打开你自己需要操作的另一个Excel文件,并保持你要操作的工作表做为当前活动工作表; 3.在你的文件按Ctrl+f (或在你的文件手动执行宏,然后选择本EXCEL文件的宏OutputAllPic); 4.在弹出的对话框指定图片所在列,图片名所在的列; 1.不管图片Excel是否被缩放过,导出图片是按图片的原始尺寸进行保存; 2.在桌面上会自动新建一个"OutputPic"的文件夹,所有导出图片将会存在那个文夹里; 3.如果文件夹已有相同名字的文件,则后面导出的文件会自动加上(v1), (v2), (v3)... ---------------- 对指定文件夹的JPG图片进行重命名 Ctrl+r 利用活动工作表的所有图片的旧名与新名的对照,对指定文件夹JPG图片进行重命名; 1.打开本Excel文件,不要关闭; 2.再另外打开你自己需要操作的另一个Excel文件,并保持你要操作的工作表做为当前活动工作表; 3.在你的文件按Ctrl+r (或在你的文件手动执行宏,然后选择本EXCEL文件的宏RenamePic); 4.在弹出的对话框指定图片旧名所在列和图片新名所在的列; 1.可以结合插入图片的宏,将所有图片的旧名输入到Excel,再在另一列填上新图片名,然后使用该宏。 2.如果顺利运行,会在原来那个文件夹下面新建一个叫“New”的子文件夹,所有重命好名的图片会自动放入子文件夹里; 3.如果文件夹已有相同名字的文件,则后面的文件会覆盖原来的文件。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值