自定义Excel图表的网格线

Excel 2016 VBA

我有一个Excel图表,类型为xlXYScatterSmoothNoMarkers。假设我将X轴网格线的范围设置为40到200,那么在40、60、80、100、120、140、160、180和200处的主要网格线就会出现。

ActiveChart.Axes(xlValue).MinimumScale = 40
ActiveChart.Axes(xlValue).MaximumScale = 200

这样在40,60,80,100,120,140,160,180和200处都有主要的网格线。我这里需要的是在X轴上多一条数值为90的网格线,最好比原来的网格线粗一点.如何用VBA来实现?

解决方案:

一条线连接两个点,对吗?所以用两个点添加一条线。

手动方法

设置一个范围,Xmin和Xmax在一列中,90在这些旁边的两个单元格中.使用这个公式计算表格中一列中的数值。然后在图表中绘制这一列。

复制这个范围,选择图表,并从功能区Home选项卡上的Paste按钮的下拉菜单中使用Paste Special。将数据添加为一个新的系列,在第一列中添加类别(X值)。根据需要对行进行格式化,你可能需要重新设置X轴的刻度。

VBA方法

这段代码在Y=90处增加了一条水平线,并使其与网格线颜色相同,但线宽为两倍。

With ActiveChart
  With .Axes(xlCategory)
    Dim Xmin As Double, xMax As Double
    Xmin = .MinimumScale
    xMax = .MaximumScale
    .MinimumScaleIsAuto = False
    .MaximumScaleIsAuto = False
  End With
  Dim srs As Series
  Set srs = .SeriesCollection.NewSeries
  With srs
    .Values = Array(90, 90)
    .XValues = Array(Xmin, xMax)
    .PlotOrder = 1
  End With
  With .Axes(xlValue)
    .MinimumScale = 40
    .MaximumScale = 200
    srs.Format.Line.ForeColor.RGB = .MajorGridlines.Format.Line.ForeColor.RGB
    srs.Format.Line.Weight = 2 * .MajorGridlines.Format.Line.Weight
  End With
End With

给TA打赏
共{{data.count}}人
人已打赏
未分类

Dialogflow - 通过API检测意图对知识库意图不起作用。

2022-9-8 13:34:32

未分类

解除分支合并

2022-9-8 13:45:39

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索