我在图表中有多个数据系列,我希望图表中大约 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
是否有任何方法(宏)可以使每一行具有不同的粗细,如 Excel 工作表中某一列中所定义的?
是否有类似的方法可以一次性更改线条颜色和标记类型(每条线条不需要不同的标记)?
答案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
...我可以绘制这样的图表: 能够画出这个
有人可以对这个宏进行修改以便我能够得到这样的图表吗?
谢谢你!