ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[求助] 怎么修改横纵坐标线条的宽度!

[复制链接]

TA的精华主题

TA的得分主题

发表于 2021-2-13 23:48 | 显示全部楼层 |阅读模式
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
1、怎么修改横纵坐标线条的宽度,横坐标标题的位置,让靠右边
2、如果有好多工作表,都要用这个宏,工作表太多,总不能每一个都改工作表名称吧,怎么改成通用的,在每个工作表点命令按钮就可以生成图表。每个图表的数据位置都一样。

工作簿1.rar

25.67 KB, 下载次数: 4

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-2-14 08:45 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
哪位老师给解决一下,谢谢啦

TA的精华主题

TA的得分主题

发表于 2021-2-14 10:48 | 显示全部楼层
坐标轴的例子:
Set ws = ActiveSheet
2021-2-14坐标轴.png

TA的精华主题

TA的得分主题

发表于 2021-2-14 11:20 | 显示全部楼层
  1. Sub ht()


  2. Dim ch As ChartObject, ws As Worksheet
  3.     Dim lastrow&
  4.     Application.ScreenUpdating = False
  5.     Set ws = Worksheets("sheet1")
  6.     If ws.ChartObjects.Count > 0 Then ws.ChartObjects.Delete
  7.     lastrow = ws.Range("a" & Rows.Count).End(xlUp).Row
  8. For i = 1 To 5 '''''''>>>>>>>>>>>>>>>>>>>>






  9.     Set ch = ws.ChartObjects.Add(ws.Cells(16 * i, 2).Left, ws.Cells(16 * i, 2).Top, 360, 215) '设置图表的位置
  10.     ch.Name = ["图标题"]
  11.    
  12.    
  13.    
  14.     With ch.Chart
  15.         .ChartType = xlXYScatterSmooth
  16.         .SeriesCollection.NewSeries
  17.         .SeriesCollection(1).Values = ws.Range(Cells(2, 1 + i), Cells(lastrow, 1 + i)) '''''>>>>>>>>>>>>>>>>>>
  18.         .SeriesCollection(1).XValues = ws.Range("a2:a" & lastrow)
  19.        ' .SeriesCollection(1).Name = [c2]
  20.         
  21.         .SeriesCollection(1).Border.Color = RGB(0, 0, 0) '图形线条颜色
  22.         
  23.          .SeriesCollection(1).MarkerStyle = xlMarkerStyleCircle '数据标记类型
  24.         .SeriesCollection(1).MarkerForegroundColor = RGB(0, 0, 0) '标记点外圈颜色
  25.         .SeriesCollection(1).MarkerBackgroundColor = RGB(0, 0, 0) '标记点颜色
  26.         
  27.         
  28.         Set Rng = ws.Range("a2:a" & lastrow) '设置横坐标的最大最小值
  29.         Set Rng1 = ws.Range(Cells(2, 1 + i), Cells(lastrow, 1 + i)) '''''''''''>>>>>>>>>>>>>>>>>>
  30.        maxValue = Application.Max(Rng)
  31.        minValue = Application.Min(Rng)
  32.       
  33.        max1Value = Application.Max(Rng1)
  34.        min1V1alue = Application.Min(Rng1)
  35.       
  36.       

  37.   
  38.          
  39.         .SeriesCollection.NewSeries
  40.                
  41.         .SeriesCollection(2).Values = ws.Range("L18:L19")
  42.         .SeriesCollection(2).XValues = ws.Range("K18:K19")
  43.         
  44.         '.SeriesCollection(2).Name = [L18]
  45.             
  46.          .SeriesCollection(2).Border.Color = RGB(0, 0, 0)
  47.     End With
  48.    
  49.    

  50.    
  51.    
  52.    
  53.    With ch.Chart.Axes(xlValue, xlPrimary)  '纵坐标设置
  54.    
  55.    .MajorUnit = 0.5  '设置纵坐标轴主要刻度单位
  56.    
  57.         '.CrossesAt = .MinimumScale
  58.         '.MinimumScale = ws.[e2]
  59.          .MaximumScale = 10 '纵坐标最大值
  60.          .MinimumScale = Int(min1V1alue) '纵坐标最小值
  61.          
  62.       
  63.         .TickLabels.Font.Size = 10 '设置纵坐标轴字体大小
  64.         
  65.         .HasTitle = True            ' 显示这个坐标轴的标题
  66.         .AxisTitle.Text = "高程(m)"    ' 设置标题为"Temp(Degree)"
  67.         .AxisTitle.Orientation = xlVertical '设置标题竖排显示
  68.       
  69.         .MajorGridlines.Border.ColorIndex = 2
  70.         
  71.         .Format.Line.Weight = 2 ''''''''''''''>>>>>>>>>>>>>>>>>>>
  72.                
  73.         
  74.     End With
  75.         
  76.    
  77.    
  78.     With ch.Chart.Axes(xlCategory)  '横坐标设置
  79.       
  80.         .TickLabels.Font.Size = 10 '设置横坐标轴字体大小
  81.         
  82.         .HasTitle = True            ' 显示这个坐标轴的标题
  83.         .AxisTitle.Text = "起点距(m)"    ' 设置标题为"Temp(Degree)"
  84.         .MinimumScale = 0
  85.         .MaximumScale = Int(maxValue) + 1 '设置横坐标的最大值
  86.         
  87.         .Format.Line.Weight = 2 '''''''>>>>>>>>>>>>>>>>>>
  88.    
  89.         .AxisTitle.Left = ws.[B16].Left + 300 ''''''360>>>>>>>>>>>>>>>>>>>
  90.         .AxisTitle.Top = ws.[B16].Top + 200 ''''''215>>>>>>>>>>>>>>>>>>
  91.         
  92.         
  93.         
  94.         
  95.         
  96.         
  97.     End With
  98.    
  99.    
  100.    
  101.     With ch.Border
  102.         .ColorIndex = 1 '1=黑色;?2=白色?;?3=红色;?4=绿色;?5=蓝色;?6=黄色?
  103.         .LineStyle = 1 '1=正常;?6=虚线?
  104.         .Weight = xlMedium '设置外框线粗细:xlHairLine,xlThin,xlMedium
  105.         
  106.      End With
  107.    
  108.    
  109.    
  110.    
  111.     With ch.Chart
  112.         
  113.         .HasTitle = True
  114.         .ChartTitle.Text = ch.Name
  115.         .ChartTitle.Font.Size = 15
  116.         .ChartTitle.Left = 100
  117.         .ChartTitle.Top = 2
  118.         .HasLegend = False
  119.         .PlotArea.Width = 347
  120.         .PlotArea.Left = 10
  121.         .PlotArea.Top = 20
  122.         .PlotArea.Height = 181
  123.         
  124.         
  125.         
  126.        ' .Export ThisWorkbook.Path & "\test.gif"
  127.    End With
  128.    
  129.    
  130.    
  131.    
  132.    
  133.    
  134.    
  135. Next i '''''''''''>>>>>>>>>>>>>>




  136. End Sub
复制代码

评分

1

查看全部评分

TA的精华主题

TA的得分主题

发表于 2021-2-14 11:21 | 显示全部楼层
改了几行代码,正在审核

工作簿1.rar

27.7 KB, 下载次数: 7

TA的精华主题

TA的得分主题

发表于 2021-2-14 11:24 | 显示全部楼层
建议把垂直坐标轴的刻度设置为一个固定值,现在这种写法图表没有比较性的

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-2-14 12:29 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-2-14 12:33 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
493861364 发表于 2021-2-14 11:21
改了几行代码,正在审核

谢谢老师,感谢!我下载看了,可能是我前面没有说清楚。应该就弄三个图,a和b列是一个数据源,c和d列是一个数据源,e和f列一个数据源,我按照老师的修改一下看行不行。还有线条宽度修改了,颜色怎么改成黑色的,现在是灰色的。

TA的精华主题

TA的得分主题

 楼主| 发表于 2021-2-14 14:19 | 显示全部楼层
493861364 发表于 2021-2-14 11:24
建议把垂直坐标轴的刻度设置为一个固定值,现在这种写法图表没有比较性的

怎么把过程修改成每个工作表都可以通用的呢,在sheet2有里调用过程,代码里要把sheet1修改成sheet2

TA的精华主题

TA的得分主题

发表于 2021-2-14 14:22 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
wjt_1221 发表于 2021-2-14 12:33
谢谢老师,感谢!我下载看了,可能是我前面没有说清楚。应该就弄三个图,a和b列是一个数据源,c和d列是一 ...

在X、Y坐标轴修改线条宽带的地方分别加一行代码,颜色就是黑色的
        .Format.Line.ForeColor.ObjectThemeColor = msoThemeColorText1 ''''''''''''''>>>>>>>>>>>>>>>>>>>

把控制循环的变量改一下,效果就是ab、cd、ef
            With ch.Chart
        .ChartType = xlXYScatterSmooth
        .SeriesCollection.NewSeries
        .SeriesCollection(1).Values = ws.Range(Cells(2, 2 * i), Cells(lastrow, 2 * i)) 'B、D、F列
        .SeriesCollection(1).XValues = ws.Range(Cells(2, 2 * i - 1), Cells(lastrow, 2 * i - 1)) 'A、C、E列
       ' .SeriesCollection(1).Name = [c2]
        
        .SeriesCollection(1).Border.Color = RGB(0, 0, 0) '图形线条颜色
        
         .SeriesCollection(1).MarkerStyle = xlMarkerStyleCircle '数据标记类型
        .SeriesCollection(1).MarkerForegroundColor = RGB(0, 0, 0) '标记点外圈颜色
        .SeriesCollection(1).MarkerBackgroundColor = RGB(0, 0, 0) '标记点颜色
        
        
        Set Rng = ws.Range(Cells(2, 2 * i - 1), Cells(lastrow, 2 * i - 1)) '设置横坐标的最大最小值
        Set Rng1 = ws.Range(Cells(2, 2 * i), Cells(lastrow, 2 * i)) '''''''''''>>>>>>>>>>>>>>>>>>

评分

1

查看全部评分

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

本版积分规则

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

GMT+8, 2024-9-29 22:21 , Processed in 0.045036 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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