ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 图片导出问题

[复制链接]

TA的精华主题

TA的得分主题

发表于 2012-2-8 18:54 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
本帖已被收录到知识树中,索引项:Shape对象
实际上,导出图片时不要边框是做不到的。

我17楼代码,仅仅是不让边框显示颜色而已。


…………

真正的问题是,每次导出图片以后,实际像素都会变差,多操作几次,图像分辨率就不对了。


TA的精华主题

TA的得分主题

发表于 2012-2-8 18:58 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
所以,楼主还是彻底放弃反复导出、导入相同图片的愚蠢想法吧。

如果别人Excel文件中的图片对你有用,那么导出一次,然后保存在图库中,以后随时调用就OK啦。


…………

这样做,A图片就只经过1次导出变成B图片,再次使用时导入B图片1次,最终变成图片C。

以后还要导入的话,也就都是导入图片B成为图片C,不会再有更多的改变啦。


TA的精华主题

TA的得分主题

发表于 2012-2-8 19:00 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
至于反复导入、导出图片,还想要保持原状,那是不可能的。

只有进行图片的二进制操作,才可能保持永远不变。


一般Excel操作,是做不到的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-8 21:57 | 显示全部楼层
香川群子 发表于 2012-2-8 18:11
呵呵。

导出图片不要边框问题,应该已经解决了。

呵呵!执着=傻瓜

TA的精华主题

TA的得分主题

发表于 2012-2-8 23:22 | 显示全部楼层
我觉得VBA不是万能的,也许一个好的流程或者一个好的思路,可以解决代码不能解决的问题

TA的精华主题

TA的得分主题

 楼主| 发表于 2012-2-9 07:47 | 显示全部楼层
本帖最后由 EJR 于 2012-2-9 20:37 编辑
liucqa 发表于 2012-2-8 23:22
我觉得VBA不是万能的,也许一个好的流程或者一个好的思路,可以解决代码不能解决的问题


是的。我已经放弃这种方法了,另用其它方法取得了满意的效果!

呵呵!知难而退也不是坏事!
我觉得这么多大师讨论不出结果,就没有希望了。不用代码,用手工!很精确!呵呵!反正图片不是很多!

点评

介绍一下?  发表于 2012-2-9 07:56

TA的精华主题

TA的得分主题

发表于 2012-2-9 07:58 | 显示全部楼层
本帖最后由 爱到天涯 于 2012-2-9 08:07 编辑
  1. Sub 从Excel工作表导出图片()      Dim Shp As Shape
  2.       Dim chrobj   As ChartObject
  3.       Dim FileName As String
  4.      For Each Shp In Sheet1.Shapes
  5.         If Shp.Type = msoPicture Then
  6.              FileName = ThisWorkbook.Path & "" & Shp.Name & ".gif"
  7.             
  8.               Shp.CopyPicture xlPrinter
  9.              Set chrobj = Sheet1.ChartObjects.Add(0, 0, Shp.Width, Shp.Height) '注意度量单位

  10.          
  11.              With chrobj.Chart
  12.                  .Paste
  13.                  ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Fill.Visible = msoFalse
  14.                  ActiveSheet.Shapes(ActiveSheet.Shapes.Count).Line.Visible = msoFalse
  15.                 .Export FileName, "gif", True
  16.                 .Parent.Delete
  17.               End With
  18.          End If
  19.       Next
  20. End Sub
复制代码
已经没有边框了。刚才仔细看了下录制宏,粘贴CHART为对象的时候,大家请注意,新建的CHART对象,默认的边框为1像素,所以要把他清零。呵呵、、、、、香川群子老师是对的,只是代码写错了,也不怪他,MS搞的很奇怪,要shape对象来控制CHART对象的边框。
这个问题解决办法很多,API,甚至FSO,都行。


TA的精华主题

TA的得分主题

发表于 2012-2-9 08:13 | 显示全部楼层
花了我半小时,给个鲜花吧。

点评

本来想你的代码如果有效,鲜花大大地给…… 可惜测试似乎无效哦。  发表于 2012-2-9 09:12

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2012-2-9 08:59 | 显示全部楼层
本帖最后由 liucqa 于 2012-2-9 09:00 编辑
爱到天涯 发表于 2012-2-9 08:13
花了我半小时,给个鲜花吧。

不对呀,还是有框。另外你的代码在2007下好像不能用

你在我39楼的代码上,改个附件出来,看看运行后出来的图片是不是有边框

TA的精华主题

TA的得分主题

发表于 2012-2-9 09:06 | 显示全部楼层
本帖最后由 liucqa 于 2012-2-9 09:12 编辑

确认一点,图片在插入Excel之后,就被加上1个像素的边框。

把39楼里面的 卫斯理图片(96像素),插入Excel,复制、粘贴到ps,会看到边框,变成98像素
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-5-22 07:56 , Processed in 0.055888 second(s), 13 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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