ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] vba中Chart.Paste无法粘贴,图表区仍为空白

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-7-27 18:37 | 显示全部楼层 |阅读模式
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
复制一些对象,其中包含一些图表。因为要将他们导出为文件,所以我进行以下操作:
1.选中这些对象
2.复制为图片
3.粘贴,仅用于获取宽度和高度
4.新建一个ChartObjects,宽高和上述相同
5.再次粘贴
6.用Chart.Export导出为文件

问题出在第五步,没有粘贴出图片,图表区仍为空白。即使加了暂停,也仍为空白。
但如果设置断点逐语句执行,图像会正常粘贴。

经过一些排查,我认为问题出在"图表 1.2"上。如果"图表 1.2"很简单(数据少),那么粘贴不为空白。
这种情况要怎么办?

附件在原文件的基础上进行了简化。
windows11,office2021。但之前使用office2019也出现了同样的问题。

  1. Sub 保存为图片()

  2.     路径 = "D:/test.bmp"
  3.     If Dir(路径) <> "" Then
  4.         Kill 路径
  5.     End If
  6.    
  7.     '复制为图片
  8.     Sheet_1_2.Select
  9.     ActiveSheet.Shapes.Range(Array("图表 1.2", "文本框 1.2 标题", "文本框 1.2_1", "文本框 1.2_2")).Select
  10.     Selection.CopyPicture Appearance:=xlScreen, Format:=xlBitmap
  11.    
  12.     '粘贴图片,用于获取宽度。当Selection为ShpeRange(选择多个图表)时,Width属性不可用,所以要先存为图片再获取Width
  13.     Worksheets("temp").Select
  14.     Cells(1, 1).Select
  15.     ActiveSheet.Paste
  16.     宽度 = ActiveSheet.Shapes(1).Width
  17.     高度 = ActiveSheet.Shapes(1).Height
  18.    
  19.     '将图片转存为图表,大小相同,为了使用export函数将图表导出为图片
  20.     Set 图表 = ActiveSheet.ChartObjects.Add(0, 0, 宽度, 高度)
  21.     图表.Chart.Parent.Select
  22.     图表.Chart.Paste '该语句执行后,图表区仍为空白。设置断点后逐语句执行不为空白
  23. '    Application.Wait (Now + TimeValue("00:00:02")) '暂停
  24.     图表.Chart.Export 路径, "BMP"
  25.     图表.Chart.Parent.Delete

  26.     '删除所有图像
  27.     ActiveSheet.Shapes.SelectAll
  28.     Selection.Delete

  29. End Sub
复制代码


示例3.7z

179.93 KB, 下载次数: 10

TA的精华主题

TA的得分主题

发表于 2023-5-28 01:14 | 显示全部楼层
遇到同样的问题了,后面解决了吗?

TA的精华主题

TA的得分主题

发表于 2023-5-28 01:35 | 显示全部楼层
找到原因了,图表.Chart.Paste前面加一句图表.Chart.Activate 就可以了
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2024-11-16 08:50 , Processed in 0.032611 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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