创build如果下一个循环与多个variables(工作代码)
我有一张表,我用它来dynamic调整图表。
为此,我使用下面的代码,按照预期工作,但是由于我是VBA新手,所以在创build循环时遇到困难,因此我不必列出每个系列/类别。
总共有8个系列和17个类别。
– 系列filter(真/假)列在“ B27:B34
”中,
– 类别filter在“ C25:S25
”中列出,
所有的工作表(3)。
有人可以帮我弄这个吗 ?
我的代码(缩写):
Sub UpdateChart() Dim varSeries1 As String Dim varSeries2 As String Dim varSeries3 As String ' ... Dim varCategory1 As String Dim varCategory2 As String Dim varCategory3 As String ' ... varSeries1 = Worksheets(3).Cells(27, 1).Value varSeries2 = Worksheets(3).Cells(28, 1).Value varSeries3 = Worksheets(3).Cells(29, 1).Value ' ... varCategory1 = Worksheets(3).Cells(25, 3).Value varCategory2 = Worksheets(3).Cells(25, 4).Value varCategory3 = Worksheets(3).Cells(25, 5).Value ' ... Worksheets(3).ChartObjects("Chart 1").Activate ActiveChart.FullSeriesCollection(1).IsFiltered = varSeries1 ActiveChart.FullSeriesCollection(2).IsFiltered = varSeries2 ActiveChart.FullSeriesCollection(3).IsFiltered = varSeries3 ' ... ActiveChart.ChartGroups(1).FullCategoryCollection(1).IsFiltered = varCategory1 ActiveChart.ChartGroups(1).FullCategoryCollection(2).IsFiltered = varCategory2 ActiveChart.ChartGroups(1).FullCategoryCollection(3).IsFiltered = varCategory3 ' ...
使用数组:
Sub UpdateChart() Dim arrSeries() As Boolean Dim arrCategory() As Boolean Dim i As Integer arrSeries = Worksheets(3).Range("B27:B34").Value arrCategory = Worksheets(3).Range("C25:S25").Value Worksheets(3).ChartObjects("Chart 1").Activate For i = LBound(arrSeries, 1) To UBound(arrSeries, 1) ActiveChart.FullSeriesCollection(i).IsFiltered = arrSeries(i, 1) Next i For i = LBound(arrCategory, 2) To UBound(arrCategory, 2) ActiveChart.FullSeriesCollection(i).IsFiltered = arrCategory(1, i) Next i End Sub