ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: andyyan

[讨论] EXCEL如何批量导出图片并命名

  [复制链接]

TA的精华主题

TA的得分主题

发表于 2019-12-10 15:08 | 显示全部楼层
灰太狼GG 发表于 2017-5-11 20:41
香老师,为什么我运行宏后转出的图片都是白色??

我的也是白的,你的解决了吗?

TA的精华主题

TA的得分主题

发表于 2020-4-26 14:04 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
暖暖娟 发表于 2019-12-10 15:08
我的也是白的,你的解决了吗?

我的也是白图

TA的精华主题

TA的得分主题

发表于 2021-1-20 17:54 | 显示全部楼层
香川群子 发表于 2011-5-27 16:37
显然是发生了"D:\picture\"文件夹不存在的错误。

可以在开始时插入验证文件夹是否存在,

香川群子老师:我在运行导出过程,总是会出现这个错误?

运行代码出错

运行代码出错


我的代码是这样的:
Sub yy()
    Dim p As Shape, a$
    f = ThisWorkbook.Path & "\???\"
    If Dir(f, vbDirectory) = "" Then MkDir (f)
        
    For Each C In Range([a3], [a65536].End(3))
  '      a = Mid(c.Value, 2)
        a = C.Value
        C(1, 3).CopyPicture
        With ActiveSheet.ChartObjects.Add(0, 0, 38, 26).Chart
            .Paste
            .Export f & a & ".jpg", "jpg"
            .Parent.Delete
        End With
    Next
End Sub
请老师指导一下,如何修改



TA的精华主题

TA的得分主题

发表于 2021-1-21 15:37 | 显示全部楼层
香川群子 发表于 2012-6-29 18:47
导太多图片没有意义啊。你放弃这个想法吧。

为什么我导出全是空白呢。
微信图片_20210121153654.png

TA的精华主题

TA的得分主题

发表于 2022-11-8 14:41 | 显示全部楼层
看了好多贴子,终于找到解决导出图片为空白的办法了


".paste上面插入一句.Parent.select就可以解决导出图片空白的问题。"

Sub PicOutput()
    OpenFile = Application.GetOpenFilename("请选择任一文件后按确定(*.*),*.*", , "选择任一文件确定图片输出文件夹,或取消获得当前文件所在文件夹。")

    If OpenFile = False Then
        myDir = ThisWorkbook.Path & "\"
    Else
        myDir = Left(OpenFile, InStrRev(OpenFile, "\"))
    End If
   
    k = InputBox("1=列左,2=列右,3=上一行,4=下一行,取消=图片所在单元格或无名称", "选择图片名称位置:", 2)
    If k = 1 Then
        r = 0: c = -1
    ElseIf k = 2 Then
        r = 0: c = 1
    ElseIf k = 3 Then
        r = -1: c = 0
    ElseIf k = 4 Then
        r = 1: c = 0
    End If

    k = MsgBox("Yes=按原尺寸,No=按新设定,Cancel=按现在显示", vbYesNoCancel, "输出图片尺寸大小选择")
    For Each p In ActiveSheet.Shapes
        ph = p.Height
        pw = p.Width
        On Error Resume Next
        pn = p.TopLeftCell.Offset(r, c).Value
        If Err.Number <> 0 Then Err.Clear
        If pn = "" Then n = n + 1: pn = Left(ThisWorkbook.Name, InStrRev(ThisWorkbook.Name, ".") - 1) & Format(n, "000")
        
GetPicName:
        On Error Resume Next
        p.Name = pn & ".jpg"
        If Err.Number <> 0 Then
            Err.Clear
            pn = InputBox("图片名称重复,请重新命名", "图片名称重复", pn)
            GoTo GetPicName
        End If
        
        p.Select
        If k = vbYes Then
            Selection.Copy
            ActiveSheet.PasteSpecial Format:="图片 (JPEG)" '英文版为"Picture (JPEG)"
            Selection.Name = "myPic"
        ElseIf k = vbNo Then
            Selection.ShapeRange.LockAspectRatio = msoFalse
            f = InputBox("放大缩小比率", "图片尺寸设定", 2)
            If IsNumeric(f) And f > 0 Then
                Selection.ShapeRange.Height = ph * f
                Selection.ShapeRange.Width = pw * f
            Else
                Selection.ShapeRange.Height = InputBox("重新设定图片高度", "图片高尺寸设定", ph)
                Selection.ShapeRange.Width = InputBox("重新设定图片宽度", "图片宽尺寸设定", pw)
            End If
        End If
        
        Selection.CopyPicture
        With ActiveSheet.ChartObjects.Add(0, 0, Selection.Width + 5, Selection.Height + 5).Chart
            .Parent.Select     
            .Paste
            .Export myDir & p.Name, "JPG"
            .Parent.Delete
        End With
        
        If k = vbYes Then
            ActiveSheet.Shapes("myPic").Delete
        ElseIf k = vbNo Then
            p.Height = ph
            p.Width = pw
        End If
        p.TopLeftCell.Offset(, -1).Select
    Next
   
End Sub

TA的精华主题

TA的得分主题

发表于 2023-6-8 10:12 | 显示全部楼层
2324 发表于 2022-11-8 14:41
看了好多贴子,终于找到解决导出图片为空白的办法了

如果图片存在不同的格式
以上的代码,是不是有一部分图片不能按单元格命名吗

TA的精华主题

TA的得分主题

发表于 2023-6-10 11:10 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2024-2-22 09:41 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
值得肯定,留作记录,用时再查。
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-11-18 17:23 , Processed in 0.030817 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表