1

У меня есть график со значениями времени по вертикальной оси (Y). Поскольку значения могут сильно изменяться, форматирование младших и главных единиц оси выполняется автоматически.

Проблема в том, что Excel выбирает значения, которые могут быть хорошими, если они имеют десятичное значение, но не идеальны при использовании времен.

Например, 0:00, 0:28, 0:57, 1:26, 1:55, 2:24, 2:52 (они соответствуют шагам в 0.02 десятичного числа)

Скриншот

Есть ли способ иметь автоматический масштаб, который выглядит хорошо при использовании времени на вертикальной оси?

1 ответ1

4

Вы можете использовать VBA, чтобы гарантировать, что максимальное значение всегда равно целому часу, скажем, и что младшая единица составляет 5 минут, а основная 10 минут.

Макрос может быть очень сложным в зависимости от того, сколько вы хотите автоматизировать. Намного проще было бы четыре ячейки рабочего листа, где вы можете ввести желаемые минимальные, максимальные, основные, второстепенные значения времени и график мгновенно обновляется.

Например, событие изменения в листе может выглядеть так:

Option Explicit

Private Sub Worksheet_Change(ByVal Target As Range)
If Not Intersect(Target, Range("chrtSettings")) Is Nothing Then

    With ActiveSheet.ChartObjects("Chart 1").Chart
        .Axes(xlValue).MinimumScale = Range("min")
        .Axes(xlValue).MaximumScale = Range("max")
        .Axes(xlValue).MajorUnit = Range("major")
        .Axes(xlValue).MinorUnit = Range("minor")
    End With


End If
End Sub

И на листе есть диапазон ячеек (с именами диапазонов), где значения могут быть установлены быстро

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