Как показать заголовки осей диаграммы с помощью VBA

Я разрабатываю макрос, который создает диаграмму, используя различные диапазоны в электронной таблице. Мой код для самой диаграммы показан ниже, но по какой-то причине я не могу отобразить заголовок левой (основной) оси. Работает нормально для правого (второстепенного). Остальной код работает нормально, все висит на этом заголовке одной оси, который не будет отображаться.

Есть предположения?

ActiveSheet.Shapes.AddChart2(201, xlColumnClustered).Select

With ActiveChart
    .SetSourceData Union(range1, range2)
    .FullSeriesCollection(1).ChartType = xlColumnClustered
    .FullSeriesCollection(1).AxisGroup = 1
    .FullSeriesCollection(1).HasErrorBars = True
    .FullSeriesCollection(2).ChartType = xlLine
    .FullSeriesCollection(2).AxisGroup = 1
    .FullSeriesCollection(2).AxisGroup = 2
    .SetElement (msoElementPrimaryValueAxisTitleAdjacentToAxis)
    .SetElement (msoElementSecondaryValueAxisTitleAdjacentToAxis)
    .SetElement (msoElementPrimaryCategoryAxisTitleNone)
    .ChartArea.Font.Color = RGB(0, 0, 0)
    .ChartArea.Font.Size = 10
End With
Преобразование HTML-таблицы в профессиональный документ Excel
Преобразование HTML-таблицы в профессиональный документ Excel
Это самый простой способ создания Excel из HTML-таблицы.
Импорт excel в laravel в базу данных
Импорт excel в laravel в базу данных
Здравствуйте, дорогой читатель, в этой статье я расскажу практическим и быстрым способом, как импортировать файл Excel в вашу базу данных с помощью...
0
0
90
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Не уверен, но может ли быть, что эта строка вызывает проблему?

With ActiveChart
    .SetSourceData Union(range1, range2)
    .FullSeriesCollection(1).ChartType = xlColumnClustered
    .FullSeriesCollection(1).AxisGroup = 1
    .FullSeriesCollection(1).HasErrorBars = True
    .FullSeriesCollection(2).ChartType = xlLine
    .FullSeriesCollection(2).AxisGroup = 1 ' <------- This line seems unnecessary
    .FullSeriesCollection(2).AxisGroup = 2
    .SetElement (msoElementPrimaryValueAxisTitleAdjacentToAxis)
    .SetElement (msoElementSecondaryValueAxisTitleAdjacentToAxis)
    .SetElement (msoElementPrimaryCategoryAxisTitleNone)
    .ChartArea.Font.Color = RGB(0, 0, 0)
    .ChartArea.Font.Size = 10
End With

РЕДАКТИРОВАТЬ Возможно, я нашел решение из этого ответа . Это похоже на ошибку, когда константа интерпретируется как 306, но если вы посмотрите на документы, константа сопоставляется со значением 307. Итак, просто используйте литерал 307 вместо msoElementPrimaryValueAxisTitleAdjacentToAxis.

Я не уверен, как это там оказалось. К сожалению, удаление не решило проблему :(

S7ewie 14.12.2020 16:11

@ S7ewie, ты видел мою правку? Я думаю, это должно сработать для вас.

neizan 14.12.2020 16:43

О, молодец! Спасибо! С этим разобрались :)

S7ewie 14.12.2020 17:10

Другие вопросы по теме