ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 图片导出问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-2-13 13:45 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:Shape对象
楼主,2万多张图片的话,用For……Each……循环要出事的恩啦。

你先做个备份,
然后,改用for next 循环,
让宏每次只导出100张图片,并且导出一张就删除一张。
然后保存文件。

然后,继续。

这样,估计可以改善速度的。



TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-13 14:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
本帖最后由 EJR 于 2012-2-13 14:41 编辑
香川群子 发表于 2012-2-13 13:45
楼主,2万多张图片的话,用For……Each……循环要出事的恩啦。

你先做个备份,


我不明白您说的意思,能详细一些吗?改用for next 循环,怎么修改代码?


导出一张删除一张,是一点一点的减少,解决不了开始是2万张的实际啊!
最后导出后100张,因为被删除了2万减去100张,是实在的100张,可最初导出100张时,工作表中还是2万张啊??

TA的精华主题

TA的得分主题

发表于 2012-2-13 14:48 | 显示全部楼层
EJR 发表于 2012-2-13 14:36
我不明白您说的意思,能详细一些吗?改用for next 循环,怎么修改代码?

至少可以保证后面导出速度加快呀。

你在excel里面插入2万个图片,没死机已经不错了

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-13 16:52 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
liucqa 发表于 2012-2-13 14:48
至少可以保证后面导出速度加快呀。

你在excel里面插入2万个图片,没死机已经不错了

2万个图片就死机?E2007里可是能有114万行啊!!!???

是软件弄着玩的?

点评

机器性能不一样嘛,图片都是对象,有大有小,处理图片和处理单元格可不一样  发表于 2012-2-13 17:12

TA的精华主题

TA的得分主题

发表于 2012-2-13 17:10 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
上了个代码,你试试看:
  1. Sub PicOutput()
  2.     Do
  3.         'MsgBox ActiveSheet.Shapes.Count
  4.         i = i + 1
  5.         On Error GoTo Ext '循环到出错时(无法正常选择时)退出。
  6.         ActiveSheet.Shapes(i).Select
  7.         ShpType = Selection.ShapeRange.Type
  8.         If ShpType = msoPicture Then
  9.             With Selection
  10.                 FileName = ThisWorkbook.Path & "" & .Name & ".gif"
  11.                 .Copy
  12.                 With ActiveSheet.ChartObjects.Add(0, 0, .Width + 2, .Height + 2).Chart
  13.                         .ChartArea.Border.LineStyle = 0
  14.                         .Paste
  15.                         .Export FileName, "gif"
  16.                         .Parent.Delete
  17.                 End With
  18.                 .Delete
  19.             End With
  20.             cnt = cnt + 1
  21.             If cnt = 100 Then Exit Do '可以在这里改变退出循环的次数
  22.         End If
  23.         ’[a1].Select
  24.     Loop
  25.     ActiveWorkbook.Save '是否需要保存自己决定。我想是保存比较好,可以从新的起点开始。
  26. Ext:
  27.     If cnt > 0 Then
  28.         MsgBox cnt & " Pictures Output OK" & vbCr & "Check Again until cnt=0 !"
  29.     Else
  30.         MsgBox "No more Pictures Remains, Output Finished !"
  31.          '考虑到有其它控件等存在干扰,请检查直到没有新的图片导出时为止。
  32.     End If
  33. End Sub
复制代码
附件为测试例子:

PicOutput 100.zip

84.08 KB, 下载次数: 27

评分

1

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-14 09:12 | 显示全部楼层
本帖最后由 EJR 于 2012-2-14 09:15 编辑
香川群子 发表于 2012-2-13 17:10
上了个代码,你试试看:附件为测试例子:


非常感谢香川群子 朋友!在试验前先感谢你了。
{:soso_e163:}{:soso_e163:}{:soso_e163:}{:soso_e163:}{:soso_e163:}{:soso_e163:}

教教我怎么给你鲜花啊?

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-14 11:23 | 显示全部楼层
EJR 发表于 2012-2-14 09:12
非常感谢香川群子 朋友!在试验前先感谢你了。
{:soso_e163: ...

"你现在积分才269分,还没有这个权限,当你的积分达到1100分时(等级就是高级),右下方就出现“评分”按钮。点击就可以评分。"
刚知道我不能评分。遗憾!

点评

我替你给  发表于 2012-2-14 12:10

TA的精华主题

TA的得分主题

发表于 2012-2-14 16:35 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
楼主在Excel表格中插入了2万张图片……

这个,如果不是上当受骗,那就是发神经。呵呵。


…………
而且,现在又要把Excel中的图片导出来……吃饱了撑的没事干对吧。


因为某种原因,无法找到原来导入图片时的图片源文件了。呵呵,悲催哦,楼主。


…………

当然,如果作为VBA代码爱好者的研究,那就是另外回事了。

TA的精华主题

TA的得分主题

发表于 2012-2-14 19:30 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
祝大家情人节快乐!{:soso_e163:}

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-14 22:32 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
EJR 发表于 2012-2-14 11:23
"你现在积分才269分,还没有这个权限,当你的积分达到1100分时(等级就是高级),右下方就出现“评分”按 ...

非常感谢liucqa 给鲜花
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-22 01:57 , Processed in 0.035607 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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