Параметр Недействительная ошибка при добавлении третьей серии - PullRequest
1 голос
/ 10 января 2020

Я автоматизирую диаграмму в Excel из PowerShell.

$ExcelObject=New-Object -ComObject Excel.Application
$ExcelWorkbook=$ExcelObject.WorkBooks.Open("$OutputFolder\$MySpreadsheet.xlsx")  
$ActiveWorksheet=$ExcelWorkbook.WorkSheets.item("Results")
$ActiveChart=$ActiveWorksheet.Shapes.AddChart().Chart
$ActiveChart.chartType = 73
$TableRange="P11:P15"
$currentRange=$ActiveWorksheet.Range($TableRange)
$ActiveChart.SetSourceData($currentRange)
$ActiveChart.SeriesCollection.NewSeries
$ActiveChart.FullSeriesCollection(1).Visible
$ActiveChart.FullSeriesCollection(1).Name="Series1"
$ActiveChart.FullSeriesCollection(1).XValues="=Results!`$M`$11:`$M`$15"
$ActiveChart.FullSeriesCollection(1).Values="=Results!`$P`$11:`$P`$15"

$ActiveChart.SeriesCollection.NewSeries
$ActiveChart.FullSeriesCollection(2).Visible
$ActiveChart.FullSeriesCollection(2).Name="Series2"
$ActiveChart.FullSeriesCollection(2).XValues="=Results!`$M`$11:`$M`$15"
$ActiveChart.FullSeriesCollection(2).Values="=Results!`$Z`$11:`$Z`$15"

$ActiveChart.SeriesCollection.NewSeries
$ActiveChart.FullSeriesCollection(3).Visible
$ActiveChart.FullSeriesCollection(3).Name="Series3"
$ActiveChart.FullSeriesCollection(3).XValues="=Results!`$M`$11:`$M`$15"
$ActiveChart.FullSeriesCollection(3).Values="=Results!`$W`$11:`$W`$15"

Однако я получаю «Параметр не действителен» для любой команды в наборе FullSeriesCollection (3). Я переключил содержимое, и независимо от того, какой блок серии 3, Excel возвращает эту ошибку. Если я строю диаграмму из макроса и переключаюсь на VBA, она делает ту же ссылку на FullSeriesCollection (3) и отлично работает вручную в Excel.

1 Ответ

1 голос
/ 10 января 2020
$ActiveChart.SeriesCollection.NewSeries

Обязательно должно быть

$ActiveChart.SeriesCollection().NewSeries.Invoke()

Диаграмма автоматически содержит два, поэтому третьего, отсутствующего там, было из-за того, что эта команда фактически не создала серию.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...