【问题标题】:scatter chart in excel from not adjacent columns through vb.net通过vb.net从不相邻列的excel中散点图
【发布时间】:2018-06-28 15:10:42
【问题描述】:

我正在尝试通过 vb.net 代码在 Excel 电子表格中绘制图表。 我想从 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

但是我得到了一个图表,其中包含我想要的系列和其他四个系列,由 X 轴上的 A 列和 Y 轴上的所有其他列组成,因为我有五列。

为什么它会画出所有这些系列?有什么想法吗?

【问题讨论】:

  • 添加图表后,在添加您感兴趣的数据之前尝试删除所有现有系列。添加图表有时可以自动添加数据,具体取决于添加图表时选择的内容。

标签: excel vb.net charts scatter


【解决方案1】:

感谢 Tim Williams 的宝贵评论,我已将此部分添加到我的代码中:

[...]

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。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-20
    • 1970-01-01
    • 1970-01-01
    • 2021-01-13
    • 1970-01-01
    相关资源
    最近更新 更多