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

……我可以繪製這樣的圖表: 能畫這個

任何人都可以對這個巨集進行任何修改,以便我能夠擁有這樣的圖表嗎?

新的預期圖表

謝謝你!

相關內容