Excel 图表:用户定义可变线条粗细的宏

Excel 图表:用户定义可变线条粗细的宏

我在图表中有多个数据系列,我希望图表中大约 55 条线中的每一条线都根据我的选择具有不同的粗细。我见过以下宏可以一次性调整所有线的粗细。

Sub SetWeights()
    Dim srs As Series
    For Each srs In ActiveSheet.ChartObjects("Chart 1").Chart.SeriesCollection
        srs.Format.Line.Weight = 0.75
    Next
End Sub
  1. 是否有任何方法(宏)可以使每一行具有不同的粗细,如 Excel 工作表中某一列中所定义的?

  2. 是否有类似的方法可以一次性更改线条颜色和标记类型(每条线条不需要不同的标记)?

答案1

是的,您可以格式化线条粗细和颜色。

此代码应格式化系列 2:

Sub SetWeights()
ActiveChart.SeriesCollection(2).Select
With Selection.Format.Line
    .Visible = msoTrue
    .ForeColor.RGB = RGB(107, 197, 135)
    .Weight = 1
End With
End Sub

您可以修改代码以循环遍历每个系列,并且每次读取不同的颜色和重量。

您可以通过添加如下行来更改标记类型:

.MarkerStyle = -4142

标记样式的选项列在此处: https://msdn.microsoft.com/en-us/vba/excel-vba/articles/series-markerstyle-property-excel

答案2

好的,以下宏(取自https://stackoverflow.com/questions/32437999/auto-adjust-excel-chart-line-weights-with-a-loop)回答了我最初的问题。

Sub SetWeights()
    Dim Srs As Series
    Dim myWeight As Range
    Dim £w As Range
    Dim j As Long

    Set myWeight = Range("Weights")

    j = 1

    With ActiveSheet
        For Each £w In myWeight
            If j > ActiveChart.SeriesCollection.Count Then Exit Sub
            ActiveChart.SeriesCollection(j).Format.Line.Weight = £w
            j = j + 1
        Next £w
    End With
End Sub

...我可以绘制这样的图表: 能够画出这个

有人可以对这个宏进行修改以便我能够得到这样的图表吗?

新的预期图

谢谢你!

相关内容