Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 21589|回复: 5

[已解决]求助设置图表绘图区大小的代码

[复制链接]
发表于 2013-12-29 16:28 | 显示全部楼层 |阅读模式
本帖最后由 ghostjiao 于 2013-12-29 17:19 编辑

各位老师大家好:
       大家谁可以编写一段设置图表绘图区大小的代码,要求设置的数字单位为cm,多谢大家。
  1. Sub 改变图表尺寸()
  2. Set myDocument = ActiveSheet
  3. For Each S In myDocument.ChartObjects
  4. 'MsgBox (S.Name)
  5.     S.Activate
  6.     ActiveChart.ChartArea.Select
  7.     S.Width = 200
  8.     S.Height = 200   
  9.     ActiveChart.PlotArea.Select
  10.     Selection.Width = 191
  11.     Selection.Top = 9
  12.     Selection.Height = 185
  13. Next S
  14. End Sub
复制代码
这段代码是从别的地方粘贴过来的,加上横坐标轴和去掉横坐标轴绘图区大小会改变,而且数字的单位是磅,麻烦哪位达人给个不会改变的,单位是cm的,十分感谢!
如附件所示,用这段程序设置图表,第一个带坐标轴,第二个不带坐标轴。设置的绘图区大小不一样。求改进代码或者编写新的代码,使绘图区的大小保持一样。
最佳答案
2013-12-29 18:40
都不需要用代码,直接正常操作后,两个图表区大小一样后,设置一个图表的分类轴不显示,图表区就自动的改变大小了。
代码取的巧,没啥意义 。
  1. Sub 改变图表尺寸()
  2.     Set myDocument = ActiveSheet
  3.     For Each s In myDocument.ChartObjects
  4.         With s.Chart
  5.             With .ChartArea
  6.                 .Width = 400
  7.                 .Height = 250
  8.             End With

  9.             With .PlotArea
  10.                 .Width = 390
  11.                 .Height = 220
  12.             End With
  13.         End With
  14.     Next s
  15.     With ActiveSheet.ChartObjects
  16.         .Item(2).Chart.PlotArea.Height = .Item(2).Chart.PlotArea.Height - .Item(1).Chart.Axes(xlCategory).Height + .Item(2).Chart.Axes(xlCategory).Height
  17.     End With
  18. End Sub
复制代码

设置绘图区的大小.rar

16.23 KB, 下载次数: 24

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-12-29 16:53 | 显示全部楼层
回复

使用道具 举报

发表于 2013-12-29 16:56 | 显示全部楼层
磅:指打印的字符的高度的度量单位。1 磅等于 1/72 英寸,或大约等于 1 厘米的 1/28。
你要把磅转换成厘米,怎么知道怎么转换了吧。

回复

使用道具 举报

 楼主| 发表于 2013-12-29 17:22 | 显示全部楼层
hwc2ycy 发表于 2013-12-29 16:56
磅:指打印的字符的高度的度量单位。1 磅等于 1/72 英寸,或大约等于 1 厘米的 1/28。
你要把磅转换成厘米 ...

版主你好,单位转换没什么问题,多谢!{:1112:}
麻烦看下应该怎么编程,是绘图区不会改变,附件已上传。第一个带坐标轴,第二个不带,用这段程序设置后绘图区的大小不一样{:181:}
回复

使用道具 举报

发表于 2013-12-29 18:40 | 显示全部楼层    本楼为最佳答案   
都不需要用代码,直接正常操作后,两个图表区大小一样后,设置一个图表的分类轴不显示,图表区就自动的改变大小了。
代码取的巧,没啥意义 。
  1. Sub 改变图表尺寸()
  2.     Set myDocument = ActiveSheet
  3.     For Each s In myDocument.ChartObjects
  4.         With s.Chart
  5.             With .ChartArea
  6.                 .Width = 400
  7.                 .Height = 250
  8.             End With

  9.             With .PlotArea
  10.                 .Width = 390
  11.                 .Height = 220
  12.             End With
  13.         End With
  14.     Next s
  15.     With ActiveSheet.ChartObjects
  16.         .Item(2).Chart.PlotArea.Height = .Item(2).Chart.PlotArea.Height - .Item(1).Chart.Axes(xlCategory).Height + .Item(2).Chart.Axes(xlCategory).Height
  17.     End With
  18. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-12-29 19:13 | 显示全部楼层
本帖最后由 ghostjiao 于 2013-12-29 19:22 编辑
hwc2ycy 发表于 2013-12-29 18:40
都不需要用代码,直接正常操作后,两个图表区大小一样后,设置一个图表的分类轴不显示,图表区就自动的改变 ...

十分感谢,我的意思是比如附件中的两个图表,刚开始都显示分类轴,把第二个图表的分类轴隐藏了,他的绘图区的大小不改变,还保持原来的大小和位置。
现在用这个代码,隐藏后在运行一遍就行了,十分感谢{:171:}
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-3-29 20:04 , Processed in 0.744018 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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