2014-11-20 7 views
-1

Я использую VBA для MS-excel 2010. Мое назначение - создать граф из формы, которая соединяется с электронной таблицей Excel. В основном пользователь выбирает две компании, а мой код за формой вытаскивает данные из электронной таблицы и отображает два набора данных из каждой компании на одном графике. Вертикальная ось будет датой, а горизонтальной будет денежная сумма. Моя проблема заключается в попытке правильно нарисовать два набора данных на одном графике. Наборы значений и соответствующие даты просто не являются правильными. Вот что я написал (я исключаю код, который я посчитаю не имеет отношение к проблеме):Графирование двух наборов данных на одном графике в VBA-excel

dates1 = "$E$2:$E$53" 
startSym1 = "$I$2":$I$53" 
dates2 = "$E$522:$E$573" 
startSym2 = "$I$522:$I$573" 

ActiveSheet.Shapes.AddChart.Select 
ActiveChart.ChartType = xlLine 
ActiveChart.SetSourceData Source:=Range(_ 
"HistoryData!" & dates1 & ",HistoryData!" & startSym1 & ",HistoryData!" & dates2 & ",HistoryData!" & startSym2) 

По какой-то причине это только графы одна линии? Я бы очень признателен за помощь в этом!
Update:

ActiveSheet.Shapes.AddChart.Select 
ActiveChart.HasTitle = True 
ActiveChart.ChartTitle.Text = sym1 & " VS. " & sym2 
ActiveChart.ChartType = xlLine 
ActiveChart.SetSourceData Source:=Range(_ 
      "HistoryData!" & dates1 & ",HistoryData!" & startSym1) 
Charts(sym1 & " VS. " & sym2).SeriesCollection.Add _ 
      Source:=Range("HistoryData!" & dates2 & ",HistoryData!" & startSym2) 

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

Обновление: исправлена ​​проблема! Heres решение

ActiveSheet.Shapes.AddChart.Select 
ActiveChart.ChartType = xlLine 
ActiveChart.HasTitle = True 
ActiveChart.ChartTitle.Text = sym1 & " VS. " & sym2 
ActiveChart.SetSourceData Source:=Range(_ 
      "HistoryData!" & dates1 & ",HistoryData!" & startSym1) 
ActiveChart.SeriesCollection.Add _ 
      Source:=Worksheets("HistoryData").Range(startSym2) 
+0

Вам нужно добавить вторую серию на графике график второй линии. Каждая серия может иметь только один источник. Проверьте этот пост [https://social.msdn.microsoft.com/Forums/en-US/4cf21336-47ea-46c7-9004-a3ca2c67e9b5/plot-multiple-series-in-one-graph-using-vba? forum = isvvba) для подсказки. –

+0

@ Victoria, если вы решили свою проблему, тогда pls отправляют как ответ, а редактируют сам вопрос с помощью решения части. – ZAT

+0

Если вы исправили свою проблему, ответьте на свой вопрос и согласитесь. Вопрос должен быть просто вопросом, и решение должно быть опубликовано как ответ. Добро пожаловать в Stack Overflow @Victoria –

ответ

0
ActiveSheet.Shapes.AddChart.Select 
ActiveChart.ChartType = xlLine 
ActiveChart.HasTitle = True 
ActiveChart.ChartTitle.Text = sym1 & " VS. " & sym2 
ActiveChart.SetSourceData Source:=Range(_ 
     "HistoryData!" & dates1 & ",HistoryData!" & startSym1) 
ActiveChart.SeriesCollection.Add _ 
     Source:=Worksheets("HistoryData").Range(startSym2) 

Anwser

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