Я использую vba для создания диаграмм с динамическими диапазонами, и Excel автоматически выбирает, используется ли строка или столбец данных для создания «серии» для диаграмм на основе относительных размеров набора данных (см. Изображения).Как мне предварительно определить, что значения y «ряда» всегда являются данными в одной строке, а не в одном и том же столбце.! [Неправильно]: https://imgur.com/gallery/4pm5E51! [Исправить]: https://imgur.com/gallery/11vIQGe
Первое сообщение, извинения за неправильное форматирование и т. д.
Подтверждено, что диапазон данных указан правильно.Почти на 100% уверены, что это потому, что в неправильном сценарии строк больше, чем столбцов, поэтому по умолчанию используются значения из одного столбца вместо значений из одной строки.
Set rng = Selection
Sheet9.Activate
ActiveSheet.Shapes.AddChart2(-1, xlLine, , , WorksheetFunction.max(500, 1.7 * lcol)).Select
With ActiveChart
.SetSourceData Source:=rng
.FullSeriesCollection(1).XValues = Sheet10.Range(Sheet10.Cells(5, 3), Sheet10.Cells(5, lcol2))
.SetElement (msoElementPrimaryCategoryAxisTitleAdjacentToAxis)
.SetElement (msoElementPrimaryValueAxisTitleAdjacentToAxis)
.HasTitle = True
.ChartTitle.Text = "Equipment Utilization (Weekly)"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Text = "Date"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Text = "Utilization"
.HasLegend = True
.Axes(xlCategory).Select
Selection.TickLabels.Orientation = xlUpward
.Axes(xlSecondary).TickLabels.NumberFormat = "0.0%"
.Axes(xlValue).MaximumScale = 1
End With