【发布时间】:2023-02-26 09:07:08
【问题描述】:
每个月,我都会收集统计性能数据,并将这些数据导出到 Excel 文件中。每个文件包含数百人的数据,每个人执行特定的工作。大约有 10 种不同的工作。每个作业都有大约 50 个不同的衡量指标。
问题在于这些工作是由不同数量的人执行的。因此,每个图表的水平轴上会有不同数量的名称。
我有两个问题:
-
如何确定每张纸上每个图表的范围。
-
如何循环选择每个工作表以创建图形。
结构看起来像这样
多个 excel 文件 -> 有一个数据表 -> 首先将修改此表以使所有性能指标标准化 -> 然后为每个作业创建第一个表的副本,然后创建所有其他作业新工作表将被隐藏 -> 然后我在每个单独的工作表上创建一个堆积条形图。
我想知道是否实际选择了工作表的“For Each WS”。如果没有,如何解决。 此外,LR = Cells(Rows.Count, 1).End(X1Up).Row 必须重新配置为仅考虑可见单元格。因为我隐藏了我不想在图表中出现的人。
SUB CHARTS() DIM LR As Long Sheets("A").Select Dim ALR As Long With ActiveSheet ALR = Cells(Rows.Count, 1).End(xlUp).Row End with Sheets("B").Select Dim BLR As Long With ActiveSheet ALR = Cells(Rows.Count, 1).End(xlUp).Row End With For Each WS in ThisWorkbook.Worksheets IF(WS.Name ="A") THEN LR = ALR End IF IF (WS.Name ="B") THEN LR = BLR End IF With ActiveSheet.ChartObjects.Add _ (Left:=850, Width:=1536, Top:=0, Height:=864) .Chart.ChartType = xlColumnStacked End With ActiveSheet.ChartObjects("Chart 1").Activate ActiveChart.SeriesCollection.NewSeries ActiveChart.FullSeriesCollection(1).Name = "=" & ActiveSheet.Name & "! $EY$1" ActiveChart.FullSeriesCollection(1).Values = "=" & ActiveSheet.Name & "!$EY$2:$EY$" & LR NEXT WS
【问题讨论】:
标签: excel vba for-loop bar-chart