请教D版的Excel达人 图片导出问题

  • c
    cgs001550
    excel 假设C列 C1~C50有50张图片
    如何导出这些图片并以C1~C50重命名

    特殊情况 比如C20有两张 以C20 C20-1命名
    请高手指导一下 谢谢! iOS fly ~
  • s
    shabli
    Vba iOS fly ~
  • c
    cgs001550
    Sub Mynz()
    Dim Shp As Shape
    Dim FileName As String
    For Each Shp In Sheets("118").Shapes
    If Shp.Type = msoPicture Then
    FileName = ThisWorkbook.Path & "\" & Shp.Name & ".JPG"
    Shp.Copy
    With Sheets("118").ChartObjects.Add(0, 0, Shp.Width + 10, Shp.Height + 12).Chart
    .Paste
    .Export FileName, "JPG"
    .Parent.Delete
    End With
    End If
    Next
    End Sub


    类似上面的VBA代码 但是我不懂使用啊
    能帮我改改吗? iOS fly ~
  • l
    lanwater
    把第4,8行的sheet118改成你的sheet(1)
  • o
    oicqgod
    刚发现第25行需改一下,要不然“-”后多出空格来:
    f_name1 = f_name & "-" & Trim(Str(n)) ' 图片命名后加-n
  • v
    viaj
    回复5#oicqgod

    高手啊!
  • c
    cgs001550
    高手在万能的D版无处不在 睡前给我的惊喜 明天试试
    感谢 兄弟!!!你是最棒的 感谢 带着爱的D版!
    iOS fly ~
  • c
    cgs001550
    兄弟 可以再请教一下吗?
    你发的我试了 可以重命名了 但是图片都是空白的 不知道什么原因
    还有这样导出来的是缩略图
    怎么才可以导出原图呢?
    谢谢! iOS fly ~
  • o
    oicqgod
    回复9#cgs001550

    我试了一下,的确如你描述的,导出为空白。

    后来上网搜了一下,见有贴子说从Excel 2016版开始新增了要求,要加一条语句(.Parent.Select,加在第31行),否则导出图片为空白。

    我之前是在Excel 2013版上测试的,所以没有遇到这个问题。

    现在已经改好了,在附件中,你再试试。

    另外,附件中我用的图片都是压缩过的(不想把附件弄得过大),可能这样让你以为是缩略图了,你可以自己另开个文件试一下。
  • 南瓜
    如何把图片反向插入表格,并且调整表格高度个宽度,图片刚好在框体内 iOS fly ~
  • c
    cgs001550
    假如我插入一张分辨率1080p的图片
    导出来就会变成很小的一张图片
    这个vba有点深奥
    搞不懂
    我去下载了一个 方方格子 的Excel工具箱使用辅助列勉强可以应付
    谢谢兄弟的用心了!你的代码我收藏了!
    新年快乐! iOS fly ~
  • c
    cgs001550
    要是可以导出来原始分辨率的 就完美了~~~
  • o
    oicqgod
    回复13#cgs001550

    在网上搜了一圈,没找到直接获取图片原始大小(高、宽)的办法,这样就没办法指定尺寸输出了。

    有一个替代办法,就是在图片导出前将要导的图片放大到原始尺寸进行导出,然后再将其缩小到放大前的尺寸。

    试了一下,可行,但对速度有影响,毕竟要导出的每张照片都要这么折腾一下。

    在附件中又加了一张未压缩的图片,测试可以按原尺寸输出,你试一下吧。

    Excel 图片导出(图片原始尺寸导出).zip(4.98 MB)
  • c
    cgs001550
    非常nice 谢谢兄弟!
  • l
    lgazg
    厉害了。。。怪狗宠物