4

Есть ли способ отредактировать вес всех линий одновременно на линейном графике 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

7 ответов7

5

Наверное, проще всего написать быстрый макрос, что-то вроде

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
3

Улучшение: создайте переменную VB (LineWT), которая указывает на ячейку в электронной таблице. Тогда вместо «Формат.Линия.Вес = 0,25 "измените 0,25 на LineWT. Затем вы можете изменить вес линии, изменив его в электронной таблице и нажав кнопку макроса. Вы можете использовать подобный код для установки имен осей X/Y с указателями на электронную таблицу.

3

Это более совместимая с копией и вставкой версия ответа Криса:

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

Просто выберите график и запустите макрос.

2

Это отлично сработало для меня. Я использовал этот код для редактирования всех строк во всех диаграммах на всех листах рабочей книги

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
0

На вкладке «Главная» в разделе «Шрифт» выберите раскрывающийся список «Границы». Выберите нужный вам стиль линии или цвет. Карандаш появится. Вместо того, чтобы с помощью карандаша нажимать на каждую строку, которую вы хотите изменить, перейдите в угол сетки ячеек, которую вы хотите изменить, и удерживайте нажатой клавишу CNTRL. Перетащите карандаш на нужную сетку ячеек, и все изменится на выбранный вами стиль или цвет.

0

Этот код изменяет ширину линии всех диаграмм в активной электронной таблице, включая таблицы диаграмм:

' 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

(Адаптировано из ответа Дэвида Маркмана.)

0

Я не думаю, что вы можете выбрать несколько строк. Самый простой способ, вероятно, состоит в том, чтобы изменить один, а затем выбрать каждый из них по очереди, используя Ctrl-Y, чтобы пройти и заново изменить вес линии.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .