创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