2013-06-14 3 views
0

Я пытаюсь установить набор данных для объекта диаграммы с помощью макроса. Макрос выбирает правильный диапазон, который я хочу (я проверяю с помощью rng.Select и debugging), но когда я нажимаю правой кнопкой мыши объект диаграммы после завершения макроса и выбираю Select Data, он говорит, что диапазон данных слишком сложный для отображения и делает неправильно заполнить диаграмму. Мой макрос ниже. Любые указатели оценили.Настройка диапазона данных диаграммы Excel с помощью макроса VBA

EDIT. У меня есть копия листа, где график был создан из заполненных данных вручную, и нажатие кнопки «Выбрать данные» на этой диаграмме показывает, что несмежный диапазон просто прекрасен - только при попытке установить его макросом для уже существующей диаграммы не работает.

Sub test() 

UpdateChart 27, 64 

End Sub 

Sub UpdateChart(ByVal row As Long, ByVal col As Long) 

Dim sht As Worksheet 
Set sht = Worksheets("Report4_Chart") 
Dim data As Worksheet 
Set data = Worksheets("Report4") 
Dim rng As Range 
Dim exclude As Range 

data.Activate 

Set exclude = data.Rows(25) 
Set rng = data.Range("A24", Intersect(data.Rows(row), data.Columns(col))) 
Set rng = SetDifference(rng, exclude) 
rng.Select 

sht.Activate 

ActiveSheet.ChartObjects("Chart 1").Activate 
ActiveChart.PlotArea.Select 
ActiveChart.SetSourceData Source:=rng 

End Sub 

enter image description here

+0

Как насчет образца данных? Является ли населенный «rng» диапазон contiguos? – teylyn

+0

Итак, я добавил изображение с типичным образцом данных, в котором я хочу, чтобы мой график содержал выделенные синим цветом. Как видите, диапазон не смежный. – db579

ответ

0

Для любого другого, кто споткнулся через этот старый вопрос: я только что обнаружил, что основывая диаграмму на несмежных диапазонов кажется работать только тогда, когда диапазоны образуют прямоугольник.

Например, я пытался группировать ячейки A1, A7 и C1 и не мог заставить его работать. Однако, когда я использовал A1, C1, A7 и C7, он действительно работал.

(На самом деле, мои диапазоны были больше, чем одна ячейка, но «отсутствующий» диапазон был такой же, как и над ним, и той же высоты, что и одна из сторон. Таким образом, объединенные диапазоны образовал прямоугольник.)

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