使用VBA将excel sparkline scale设置为左侧的值

时间:2018-01-22 16:30:44

标签: excel vba excel-vba sparklines

我试图在Excel电子表格中循环显示所有迷你图(500+)。

然后,我需要将垂直范围设置为每个迷你图左侧单元格中的值。例如单元格A1的值为' 5'。单元格A2中有迷你线。我需要将迷你线的垂直范围设置为5。

迷你图未分组(即每个迷你图组中的一个迷你图)

我已经达到了下面的代码,但我似乎无法弄清楚如何引用迷你图的位置,然后将其抵消。

任何帮助都非常感谢!

Dim i As Integer
Dim SpLG As SparklineGroup
Dim SpLG_ref As String
Dim SpLG_range as Range

For i = 1 To Cells.SparklineGroups.Count
    Set SpLG = Cells.SparklineGroups(i)

    SpLG_ref = SpLG.Location.Address
    SpLG_range2 = Range("SpLG_range").Offset(0, -1)    << ERROR

    SpLG.Axes.Vertical.MaxScaleType = xlSparkScaleCustom
    SpLG.Axes.Vertical.CustomMaxScaleValue = SpLG_range2.Value

Next i

2 个答案:

答案 0 :(得分:1)

您需要 Set SpLG_range2,而不是仅仅这样分配。但是你的代码中还有其他问题,而且很多东西都不需要存在。

用这个代替所有代码将做你想要的:

Dim SpLG As SparklineGroup

For Each SpLG In Cells.SparklineGroups
    With SpLG
        .Axes.Vertical.MaxScaleType = xlSparkScaleCustom
        .Axes.Vertical.CustomMaxScaleValue = .Location.Offset(0, -1).Value
    End With
Next

答案 1 :(得分:0)

必须使用Set关键字指定对象变量:

Set SpLG_Range2 = ...

希望这有帮助!