Пользовательская линия сетки на графике Excel - PullRequest
0 голосов
/ 22 апреля 2020

Excel 2016 VBA

У меня есть диаграмма Excel типа xlXYScatterSmoothNoMarkers. Допустим, я установил линии сетки по оси X в диапазоне от 40 до 200:

ActiveChart.Axes(xlValue).MinimumScale = 40
ActiveChart.Axes(xlValue).MaximumScale = 200

Это дает основные линии сетки на 40, 60 80, 100, 120, 140, 160, 180 и 200. Что мне нужно здесь должен иметь дополнительную линию сетки на оси X со значением 90, предпочтительно немного толще, чем исходные. Как мне сделать sh это с VBA?

1 Ответ

1 голос
/ 24 апреля 2020

Линия соединяет две точки, верно? Поэтому добавьте строку, используя две точки.

Ручной подход

Установите диапазон с Xmin и Xmax в одном столбце и 90 в двух ячейках рядом с ними. Используйте эту формулу для расчета значений в столбце на листе. Затем нанесите этот столбец на диаграмму.

Скопируйте этот диапазон, выберите диаграмму и используйте Специальную вставку из раскрывающегося списка на кнопке Вставить на вкладке Главная ленты. Добавьте данные в виде новой серии с категориями (значениями X) в первом столбце. Отформатируйте линию, как вам нужно, и вам, вероятно, придется сбросить масштаб оси X.

VBA Approach

Этот код добавляет горизонтальную линию при Y = 90, и делает его того же цвета, что и линии сетки, но в два раза больше ширины линии.

With ActiveChart
  With .Axes(xlCategory)
    Dim Xmin As Double, xMax As Double
    Xmin = .MinimumScale
    xMax = .MaximumScale
    .MinimumScaleIsAuto = False
    .MaximumScaleIsAuto = False
  End With
  Dim srs As Series
  Set srs = .SeriesCollection.NewSeries
  With srs
    .Values = Array(90, 90)
    .XValues = Array(Xmin, xMax)
    .PlotOrder = 1
  End With
  With .Axes(xlValue)
    .MinimumScale = 40
    .MaximumScale = 200
    srs.Format.Line.ForeColor.RGB = .MajorGridlines.Format.Line.ForeColor.RGB
    srs.Format.Line.Weight = 2 * .MajorGridlines.Format.Line.Weight
  End With
End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...