точечная диаграмма в Excel из несмежных столбцов через vb.net - PullRequest
0 голосов
/ 28 июня 2018

Я пытаюсь нарисовать диаграммы в таблице Excel через код vb.net. Я хочу нарисовать точечную диаграмму из столбца A (ось X) и столбца D (ось Y). С некоторой онлайн-помощью я написал этот код:

Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
xlApp = New Excel.Application

xlWorkBook = xlApp.Workbooks.Open("C:\excel_file.xlsx")

    xlApp.Visible = True

    xlWorkSheet = xlWorkBook.Sheets("Foglio4")

    With xlWorkSheet

        .Shapes.AddChart.Select()

        With xlApp.ActiveChart

            .ApplyCustomType(Excel.XlChartType.xlXYScatterSmoothNoMarkers)

            xlApp.ActiveChart.SeriesCollection(1).Name = "X-Y"
            xlApp.ActiveChart.SeriesCollection(1).XValues = "='Foglio4'!$A$2:$A$1446"
            xlApp.ActiveChart.SeriesCollection(1).Values = "='Foglio4'!$D$2:$D$1446"

        End with

    End with

Но я получаю диаграмму с нужной мне серией вместе с другими четырьмя сериями, построенную с помощью столбца A на оси X и всех остальных на оси Y, поскольку у меня есть пять столбцов.

Почему он рисует все эти серии? Есть идеи?

1 Ответ

0 голосов
/ 29 июня 2018

Благодаря ценному комментарию, сделанному Тимом Уильямсом, я добавил эту часть в свой код:

[...]

xlApp.ActiveChart.SeriesCollection(1).Name = "X-Y"
xlApp.ActiveChart.SeriesCollection(1).XValues = "='Foglio4'!$A$2:$A$1446"
xlApp.ActiveChart.SeriesCollection(1).Values = "='Foglio4'!$D$2:$D$1446"

For n = .SeriesCollection.Count To 2 Step -1
    .SeriesCollection(n).Delete
Next n

[...]

При этом удаляются все нежелательные серии, оставляя только тот, который хотел, то есть # 1.

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