Private Sub CommandButton2_Click()
Dim objSelection1 As Range, objSelection2 As Range, objChart As ChartObject
ActiveWorkbook.Sheets("Sheet1").Select
Set objSelection1 = _
Application.InputBox(Prompt:="Select first series", _
Default:=Selection.Address, _
Type:=8)
Set objSelection2 = _
Application.InputBox(Prompt:="Select second series", _
Type:=8)
' This part is wrong
Dim objSelection3 As Range
Set objSelection3 = Range("=Sheet1!$I$56:$N$56")
objSelection3.FormulaArray = "=objSelection1 - objSelection2"
Set objChart = ChartObjects.Add(Left:=400, Width:=200 * 1.618, Top:=570, Height:=200)
With objChart.Chart
.ChartType = xlLineMarkers
.SetSourceData objSelection3
.PlotBy = xlRows
End With
End With
End Sub
Я пытаюсь написать код, который подскажет пользователю о двух сериях данных и диаграммах новую серию, заданную суммой двух введенных серий. У меня возникли проблемы с созданием этой новой серии в моей функции. Я попробовал сложение матрицы (что не похоже на удобную функцию) и formulaArray (который, как представляется, не принимает переменные объекта Range). Если возможно, я также хотел бы не выводить вновь созданную серию на листе и просто иметь ее в формуле как внутреннюю переменную. Я избегал использования каких-либо циклов, потому что считаю, что есть очень чистый способ написать это. Любая помощь приветствуется.VBA: Добавление двух объектов диапазона покомпонентно
Хорошее решение, хотя я нашел другой способ сделать это без ссылки на неиспользуемую ячейку (в objSelection3), используя вместо этого массивы. Очень признателен! – rocketman