在VBA中循环多个范围时确定值

我正在使用一个macros来设置基于dynamic数据集的图表最大值和最小值。 当用户select他们的组时,图表更新,macros运行将图表最大值和最小值更新为适当的比例。

我希望有人可以帮助我,因为我尝试使用3个范围的variables:

  1. 根据范围内的单元格值select图表
  2. 根据范围内的单元格值设置最小值
  3. 根据范围内的单元格值设置最大值

在这一点上,我能够拉出图表名称,但无法获取范围内的最小值和最大值。

任何帮助,将不胜感激!

Sub rescale() ActiveSheet.Calculate Dim ChrtNmRng As Range Dim ChrtMinRng As Range Dim ChrtMaxRng As Range Dim cell As Range Set ChrtNmRng = Sheets("Data").Range("o5:o20") Set ChrtMinRng = Sheets("Data").Range("z5:z20") Set ChrtMaxRng = Sheets("Data").Range("Aa5:Aa20") For Each cell In ChrtNmRng With Sheets("Dashboard").ChartObjects(cell.Value).Chart.Axes(xlValue) .MinimumScale = ChrtMinRng.Value .MaximumScale = ChrtMaxRng.Value End With Next cell End Sub 

像这样做:

 Sub rescale() Dim ChrtNmRng As Range, cell As Range ActiveSheet.Calculate Set ChrtNmRng = Sheets("Data").Range("o5:o20") For Each cell In ChrtNmRng With Sheets("Dashboard").ChartObjects(cell.Value).Chart.Axes(xlValue) .MinimumScale = Range("Z" & cell.Row) .MaximumScale = Range("AA" & cell.Row) End With Next cell End Sub 

这里的关键在于最小值和最大值( ZAA )的范围与列O精确alignment,因此您可以使用row参考来获取所需的相应值。

据我了解你的意见。 O列包含图表的名称,其他图表包含每个图表的最小值和最大值。

 Sub rescale() ActiveSheet.Calculate Dim ChrtNmRng As Range Dim ChrtMinRng As Range Dim ChrtMaxRng As Range Dim i As Long Set ChrtNmRng = Sheets("Data").Range("o5:o20") Set ChrtMinRng = Sheets("Data").Range("z5:z20") Set ChrtMaxRng = Sheets("Data").Range("Aa5:Aa20") For i = 1 To 16 With Sheets("Dashboard").ChartObjects(ChrtNmRng(i).Value).Chart.Axes(xlValue) .MinimumScale = ChrtMinRng(i).Value .MaximumScale = ChrtMaxRng(i).Value End With Next i End Sub