我有两列是我在图表中使用的信息,它根据我选择的时间范围而变化。主要问题是列的长度可能不同,它可以是5行,当我选择另一个时间段时,它可以是7行或更少,然后是5.图表中的数据是刷新的,但列数不是,例如,我的数据是这样的:如何在数据更改时更新图表?
Tom 20
Susan 30
John 15
因此图表将有三列,并根据第一列中的值,它们的颜色是不同的,但是当我选择的时间数据变化的另一个时期:
Peter 40
Patrick 70
Joe 36
Megan 57
Susan 74
现在图表将包含只有前三个名称的三列:彼得,帕特里克,乔和列的颜色将与第一个图表相同。
我希望很容易理解我的问题,最主要的是图表的可视化不会像它应该的那样改变。我添加了一部分代码:
Sub Macro1()
Dim MyRangex As Range
Dim LastRow As Long
Dim ChartRange1 As Range
LastRow = Worksheets("Calculate").Cells(Rows.Count, "E").End(xlUp).row
Set MyRangex = Worksheets("Calculate").Range("E2:E" & LastRow)
Set ChartRange1 = Sheets("Calculate").Range("G2:G" & LastRow)
ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).XValues = MyRangex
ActiveChart.SeriesCollection(1).Values = ChartRange1
For i = 1 To Worksheets("Calculate").Cells(9, 10).value
ActiveChart.SeriesCollection(1).Points(i).Select
Select Case Worksheets("Calculate").Cells(i + 1, 5).value
Case Is = "Tom"
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 0, 0)
.Transparency = 0
.Solid
End With
Case Is = "Susan"
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(0, 176, 240)
.Transparency = 0
.Solid
End With
Case Is = "Joe"
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(255, 255, 0)
.Transparency = 0
.Solid
End With
Case Is = "John"
With Selection.Format.Fill
.Visible = msoTrue
.ForeColor.RGB = RGB(191, 191, 191)
.Transparency = 0
.Solid
End With
End Select
Next i
End Sub
请问,您如何选择期限?是否有一些特定的单元格输入新的时期?或者是否有某种与控制相关的宏,它更新了表格“计算”中的信息?这是什么控制? – ZygD
还有另一张包含所有信息的工作表,您可以在其中选择从中选择数据的时间段。然后在工作表“计算”中计算一些信息,例如,每个人到商店有多少次,如果他没有在该时间段访问该商店,他不在列表中,因此列表正在改变。一切都是用很多代码完成的...... –
是总是在同一列中的数据,只是具有不同数量的行,具体取决于时间段? –