VBA从Excel图表中提取系列名称,X和Y值

我正在寻找从Excel图表中提取数据的帮助。 具体来说,我需要从图表上的所有点拉出系列名称XY值。 我从Excel的基本代码开始,但它只给我X值。

Sub GetChartValues() Dim NumberOfRows As Integer Dim X As Object Counter = 2 ' Calculate the number of rows of data. NumberOfRows = UBound(ActiveChart.SeriesCollection(1).Values) Worksheets("ChartData").Cells(1, 1) = "X Values" ' Write x-axis values to worksheet. With Worksheets("ChartData") .Range(.Cells(2, 1), _ .Cells(NumberOfRows + 1, 1)) = _ Application.Transpose(ActiveChart.SeriesCollection(1).XValues) End With ' Loop through all series in the chart and write their values to ' the worksheet. For Each X In ActiveChart.SeriesCollection Worksheets("ChartData").Cells(1, Counter) = X.Name With Worksheets("ChartData") .Range(.Cells(2, Counter), _ .Cells(NumberOfRows + 1, Counter)) = _ Application.Transpose(X.Values) End With Counter = Counter + 1 Next End Sub 

我需要弄清楚如何使这个工作,所以我可以创build给定值的表。 我还附上了我正在处理的图表的图像。 任何帮助将真正感激!

图表图片

车站时间表图片

给出一个去,确保您的图表被选中之前运行的代码:

 Sub Getting_data() Dim iSrs As Long Dim cht As Chart Dim srs As Series Dim wkst As Worksheet If ActiveChart Is Nothing Then Exit Sub Set cht = ActiveChart Set wkst = Worksheets.Add For iSrs = 1 To cht.SeriesCollection.Count Set srs = cht.SeriesCollection(iSrs) On Error Resume Next wkst.Cells(1, 2 * iSrs).value = srs.Name wkst.Cells(2, 2 * iSrs - 1).Resize(srs.Points.Count).value = _ WorksheetFunction.Transpose(srs.XValues) wkst.Cells(2, 2 * iSrs).Resize(srs.Points.Count).value = _ WorksheetFunction.Transpose(srs.Values) Next End Sub