Frage Ändern der Zeilengewichte der Datenreihen im Excel-Diagramm (viele gleichzeitig)


Gibt es eine Möglichkeit, das Gewicht aller Zeilen gleichzeitig in einem Excel-Liniendiagramm zu bearbeiten?

Ich habe eine Grafik mit ungefähr 50 Datenreihen, und es ist zu viel, um alle zu durchlaufen und die Gewichte einzeln zu ändern, und es ist schwer, die Daten zu sehen, wenn die Linien dünner wären, es wäre ein bisschen einfacher. Ich kann keinen Weg finden, sie mehrfach auszuwählen, was ein bisschen furchtbar erscheint.

Edit: Ich habe es schließlich mit dem folgenden Code arbeiten (nachdem ich ein bisschen VB gelernt habe). Allerdings scheint mir die Lesbarkeit der Grafik nicht zu helfen! Chris hat mir geholfen, es zu klären, also gebe ich ihm die Zecke.

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


Ursprung




Antworten:


Wahrscheinlich am einfachsten, ein schnelles Makro zu schreiben, etwas ähnliches

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



Prost, ich probiere das aus :) - Chris Dennett


Dies ist eine mit Copy & Paste kompatible Version von Chris 'Antwort:

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

Wählen Sie einfach das Diagramm und führen Sie das Makro aus.


3
2017-12-12 19:14





Verbesserung: Erstellen Sie eine VB-Variable (LineWT), die auf eine Zelle in der Tabelle zeigt. Dann ändern Sie statt "Format.Line.Weight = 0.25" 0.25 zu LineWT. Dann können Sie die Linienstärke ändern, indem Sie sie in der Tabelle ändern und auf die Makroschaltfläche klicken. Sie können ähnlichen Code verwenden, um X / Y-Achsennamen mit Zeigern auf die Tabelle zu setzen.


3
2018-04-05 21:12





Das hat perfekt für mich funktioniert. Ich habe diesen Code verwendet, um alle Zeilen in allen Diagrammen auf allen Blättern einer Arbeitsmappe bearbeiten zu lassen

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





Ich glaube nicht, dass Sie Zeilen mehrfach auswählen können. Der einfachste Weg ist wahrscheinlich, einen zu ändern und dann jeden zu wählen, der nacheinander mit Ctrl-Y durchgeht und die Änderung der Liniengewichtung wiederholt.


0
2017-11-16 00:15



Es muss etwas Besseres geben. Vielleicht etwas wie ein benutzerdefinierter Diagrammstil? - Chris Dennett


Dieser Code ändert die Linienstärke aller Diagramme in der aktiven Tabelle einschließlich Kartenblätter:

' 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

(Angepasst von David Markmans Antwort.)


0
2017-11-14 01:47





Wählen Sie auf der Registerkarte "Start" im Abschnitt "Schrift" die Dropdown-Liste "Rahmen" aus. Wählen Sie Ihre gewünschte Linienart oder Farbe aus. Ein Bleistift erscheint. Anstatt den Stift zu verwenden, um auf jede Zeile zu klicken, die Sie ändern möchten, gehen Sie zu der Ecke des Rasters der Zellen, die Sie ändern möchten, und halten Sie die CNTRL-Taste gedrückt. Ziehen Sie den Stift über das gewünschte Zellengitter, und alle werden zu dem von Ihnen ausgewählten Stil oder der ausgewählten Farbe wechseln.


0
2018-05-19 09:01