題 在Excel圖表中更改數據系列線寬(多次一次)


有沒有辦法在Excel折線圖上一次編輯所有線條的權重?

我有一個關於它的大約50個數據系列的圖表,並且要經歷所有這些並且單獨更改權重太多了,如果線條更薄則很難看到數據,它會更容易一些。我看不到多種方式來選擇它們,這看起來有點可怕。

編輯:我最終使用以下代碼(在學習了一些VB之後)。雖然我似乎沒有幫助圖表的可讀性!克里斯幫我解決了,所以我會給他打勾。

Sub onepxlines()
        With Selection
            MsgBox ("Selection: " & TypeName(Selection))
            If TypeName(Selection) = "ChartArea" Then
                Dim area As ChartArea
                Set area = Selection

                MsgBox ("Area parent: " & TypeName(area.Parent))

                If TypeName(area.Parent) = "Chart" Then
                    Dim chart As chart
                    Set chart = area.Parent
                    Dim srs As Series

                    For Each srs In chart.SeriesCollection
                        srs.Format.Line.Weight = 1.5
                    Next
                End If
            End If
        End With
End Sub

4
2017-11-15 23:02


起源




答案:


可能最容易編寫一個快速的宏,像

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

5
2017-11-16 05:31



乾杯,我會嘗試這個:) - Chris Dennett


這是Chris的答案的更多複制和粘貼兼容版本:

Sub SetWeights()
    Dim srs As Series
    For Each srs In ActiveChart.SeriesCollection
        srs.Format.Line.Weight = 0.25
    Next
End Sub

只需選擇圖表並運行宏。


3
2017-12-12 19:14





增強:創建指向電子表格中單元格的VB變量(LineWT)。然後代替“Format.Line.Weight = 0.25”將0.25更改為LineWT。然後,您可以通過在電子表格中更改線寬並單擊宏按鈕來更改線寬。 您可以使用類似的代碼通過指向電子表格的指針設置X / Y軸名稱。


3
2018-04-05 21:12





這對我來說非常合適。我使用此代碼來編輯工作簿的所有工作表上的所有圖表中的所有行

Sub ChangeLineType()

'This macro will print all embedded charts in the active workbook
'
    Application.ScreenUpdating = False
    Dim Sht As Object
    Dim Cht As ChartObject
    For Each Sht In ActiveWorkbook.Sheets
        For Each Cht In Sht.ChartObjects
            Cht.Activate
            ActiveChart.ChartArea.Select
            'ActiveWindow.SelectedSheets.PrintOut
                Dim srs As Series
                For Each srs In ActiveChart.SeriesCollection
                srs.Format.Line.Weight = 0.25
                Next
        Next
    Next
End Sub

2
2017-09-04 18:14





我不認為你可以多選線。最簡單的方法可能是更改一個,然後選擇每個依次使用Ctrl-Y來完成並重新進行線寬變化。


0
2017-11-16 00:15



必須有比這更好的東西。也許像自定義圖表樣式? - Chris Dennett


此代碼更改活動電子表格中所有圖表的線寬 包括圖表

' Sets the line thickness for all charts in the active spreadsheet.
Sub ChangeLineType()
    Dim Cht As Chart
    Dim Chts As New Collection
    Dim Sht As Object   ' Can be Chart or WorkSheet

    For Each Sht In ActiveWorkbook.Sheets
        If TypeName(Sht) = "Chart" Then
            Chts.Add Sht
        Else
            For Each Cht In Sht.ChartObjects
                Chts.Add Cht
            Next
        End If
    Next

    Application.ScreenUpdating = False
    For Each Cht In Chts
        Dim Srs As Series
        For Each Srs In Cht.SeriesCollection
            Srs.Format.Line.Weight = 0.25
        Next Srs
    Next Cht
End Sub

(改編自David Markman的回答。)


0
2017-11-14 01:47





在“主頁”選項卡的“字體”部分中,選擇“邊框”下拉列表。 選擇所需的線條樣式或顏色。會出現一支鉛筆。 不要使用鉛筆單擊要更改的每一行,而是轉到要更改的單元格網格的一角,然後按住CNTRL鍵。 將鉛筆拖到所需的單元格網格上,所有這些都將更改為您選擇的樣式或顏色。


0
2018-05-19 09:01