我有以下問題:我從用戶將插入到電子表格的特定單元格中的值創建了一個圖表,圖表顯示了我期望的內容(以正確的方式收集系列)。該系列僅使用 2 個資料點連續創建。我想將系列的 Xvalues(和 YValues)存盤在動態陣列中,以便稍后(在系列集合回圈之外)執行計算。我嘗試了以下操作,但陣列只存盤系列的最后一個值(盡管到處都使用 redim 保留)。
是不是因為陣列沒有正確重新定義?
謝謝你的幫助!
i = 1
SeriesAddedA = 1
RangeOccupiedA = Range("A2").End(xlDown).Row
RangeOccupiedB = Range("B2").End(xlDown).Row
MaxRangeOccupied = WorksheetFunction.Max(RangeOccupiedA, RangeOccupiedB)
Dim XValuesA()
Dim YValuesA()
ReDim XValues(RangeOccupiedA 2)
ReDim YValues(RangeOccupiedA 2)
Do While i < MaxRangeOccupied
FilledCompA = NextFilled(Cells(i, 1))
PrevCell = PrevFilled(Cells(i 1, 1))
rowdiff = FilledCompA - PrevCell
If rowdiff < 2 And PrevCell <> 0 And FilledCompA <> 0 Then
ReDim Preserve XValuesA(1 To RangeOccupiedA 2)
chart.SeriesCollection.NewSeries
chart.FullSeriesCollection(SeriesAddedA).Name = "Reaction Step A " & SeriesAddedA - 1
chart.FullSeriesCollection(SeriesAddedA).XValues = "=" & "'" & ActiveSheet.Name & "'" & "!$E$" & FilledCompA - 1 & ":$E$" & FilledCompA
chart.FullSeriesCollection(SeriesAddedA).Values = "=" & "'" & ActiveSheet.Name & "'" & "!$M$" & FilledCompA - 1 & ":$M$" & FilledCompA
XValuesA() = chart.SeriesCollection(SeriesAddedA).XValues
SeriesAddedA = chart.SeriesCollection.Count 1
ElseIf PrevCell <> 0 And rowdiff > 0 Then
ReDim Preserve XValuesA(1 To RangeOccupiedA 2)
chart.SeriesCollection.NewSeries
chart.FullSeriesCollection(SeriesAddedA).Name = "Reaction Step prev A " & SeriesAddedA - 1
chart.FullSeriesCollection(SeriesAddedA).XValues = "=" & "(" & "'" & ActiveSheet.Name & "'" & "!$E$" & FilledCompA - rowdiff & "," & "'" & ActiveSheet.Name & "'" & "!$E$" & FilledCompA & ")"
chart.FullSeriesCollection(SeriesAddedA).Values = "=" & "(" & "'" & ActiveSheet.Name & "'" & "!$M$" & FilledCompA - rowdiff & "," & "'" & ActiveSheet.Name & "'" & "!$M$" & FilledCompA & ")"
XValuesA() = chart.SeriesCollection(SeriesAddedA).XValues
SeriesAddedA = chart.SeriesCollection.Count 1
End If
loop
'the debug print says:
XvaluesA(1) 310.52
XvaluesA(2) 408.58
uj5u.com熱心網友回復:
隨著XValuesA() = chart.SeriesCollection(SeriesAddedA).XValues您覆寫資料XValuesA每次你把它在你的回圈。這就是為什么它只包含最后一個值。
XValuesA(i) = chart.SeriesCollection(SeriesAddedA).XValues改為使用然后
Debug.Print XvaluesA(1)(1)
Debug.Print XvaluesA(1)(2)
給出第一個值和
Debug.Print XvaluesA(2)(1)
Debug.Print XvaluesA(2)(2)
第二 …
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/314270.html
