首页 文章

excel中的散点图通过vb.net从不相邻的列中分离出来

提问于
浏览
0

我正试图通过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轴上的所有其他列组成,因为我有五列 .

为什么它会吸引所有这些系列?任何的想法?

1 回答

  • 0

    感谢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 .

相关问题