2015-05-01 3 views
1

Я пытаюсь создать ось диаграммы много категорий в excel с VBA. (см. пример ниже)Создайте многоосевую метку оси на диаграмме

Моя попытка сделать это с помощью VBA, normaly Я представляю массив для своих значений xvalues, и на этот раз я пытаюсь представить два массива, но я получаю несоответствие типов. Любые идеи о том, как это сделать?

With chart.SeriesCollection(1) 
    .Name = "Data1" 
    .Values = avgValue1 
    .XValues = Array(columnVAlue, labelValue) 

Pick with multiple category axis

* UPDATE *

Я использую эту таблицу из Access в так что я не могу взаимодействовать с листа.

+0

Отредактировал вопрос, чтобы сфокусировать ответы немного. – TheCodeNovice

ответ

1

Изображение, которое вы отправляете, составлено из blog post от гуру-указателя по Excel Jon Peltier. В комментариях к этому сообщению Джон указывает несколько раз, что многоуровневая ось может быть передана только из диапазона рабочих листов, а не из массива.

Я не знаю о графике в Access. Но в Excel вы не можете передать массив в виде строки с разделителями и иметь двойную ось. Вам нужно использовать диапазон рабочих листов.

и

Как я уже говорил в моем предыдущем комментарии, не представляется возможным передать что-нибудь другое, чем диапазон рабочего листа, который будет производить ось категорий с категорий и подкатегорий. Вы не можете передать строку, которая сделает это, и вы не сможете передать 2D-массив. По крайней мере, я не был достаточно умен, чтобы найти способ.

Итак, если вы используете VBA для построения диаграммы, напишите два массива на два столбца рабочего листа, а затем используйте этот диапазон для категории X-оси. Вы можете использовать скрытый лист, если вы не хотите, чтобы подготовка диаграммы нарушала внешний вид вашей книги.

+0

Спасибо за ответ, к сожалению, я не могу двигаться вперед с тем, что вы предлагаете. Я использую эту диаграмму как внедренный объект в форме Access, поэтому он должен полностью управляться VBA, что побудило меня опубликовать этот вопрос для большей аудитории StackOverflow. Спасибо за попытку! – TheCodeNovice

+0

В этом случае ответ «Это невозможно». Джон Пельтье делает синглы Excel и умоляет. Если он не нашел способ сделать это, то, скорее всего, вы не должны делать то, что хотите. – teylyn

+0

Я недавно пересмотрел это, и я пробовал много разных перестановок массивов в VBA. Ничто из того, что я встретил, не дает этих хороших многоуровневых тиков и меток. –

Смежные вопросы