Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/google-app-engine/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用VBA将excel sparkline scale设置为左侧的值_Vba_Excel_Sparklines - Fatal编程技术网

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

使用VBA将excel sparkline scale设置为左侧的值,vba,excel,sparklines,Vba,Excel,Sparklines,我试图在excel电子表格中循环浏览所有的小图标(500+) 然后,我需要将垂直范围设置为每个小火花左侧单元格中的值。e、 g.单元格A1的值为“5”。A2单元中有闪光点。我需要将火花线的垂直范围设置为5 火花线未分组(即每个火花线组中有一个火花线) 我已经得到了下面的代码,但我似乎不知道如何引用火花线的位置,然后抵消它 非常感谢您的帮助 Dim i As Integer Dim SpLG As SparklineGroup Dim SpLG_ref As String Dim SpLG_ran

我试图在excel电子表格中循环浏览所有的小图标(500+)


然后,我需要将垂直范围设置为每个小火花左侧单元格中的值。e、 g.单元格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
Dim i作为整数
暗SpLG作为SparklineGroup
Dim SpLG_ref作为字符串
变暗SpLG_范围作为范围
对于i=1到Cells.SparklineGroups.Count
设置SpLG=单元格。SparklineGroup(i)
SpLG\u ref=SpLG.Location.Address

SpLG_range2=范围(“SpLG_范围”)。必须使用Set关键字为偏移量(0,-1)对象变量赋值:

Set SpLG_Range2 = ...

希望这有帮助

您需要
设置
SpLG\u范围2
,而不仅仅是这样分配。但是在你的代码中还有其他的问题和很多不需要的东西

用此代码替换所有代码将实现您想要的功能:

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

您得到的错误是什么?(您尚未声明SpLG_range2。)使用偏移量,您试图查看左侧的一列,但A的左侧没有列。请在模块顶部指定
Option Explicit
,然后调试>编译并修复代码,直到编译完成,然后更新代码段。您正在引用未声明的变量,声明未使用的变量,…“单元格A2中有火花线。”-您的意思是B1中有火花线吗?
SpLG_range2
显然是要保留一个范围,而不是地址@Xabier。如果Mark遵循@Mat的Mug建议,他会发现问题所在。希望我很快就合并了,然后Rubberduck会正确地提取缺少的
Set
关键字(以及隐式默认成员分配,例如
someVariant=someRange
)。重写的功劳=)谢谢这真的很有帮助!不幸的是,我在
.Axes.Vertical.CustomMaxScaleValue=.Location.Offset(0,-1).Value行中遇到了“类型不匹配”运行时错误。如果再次出现错误,请单击“调试”,然后在即时窗口(在VBE中)中输入
?SpLG.Location.Address
,以获取出错的闪线的位置。检查它左边的单元格中是否有有效值。是的,所有图形都在K列中,值都在J列的左边(它们是整数)。我已经检查过没有空白或缺失的数字,但仍然得到错误。你有这样一个例子吗?我使用的是64位Excel 2010,如果这有什么不同的话?好吧,我想我现在理解了这个问题(我能够重现它),但我不确定我是否知道如何修复它。问题在于
SparklineGroup
指的是一堆Sparklines(因此是组)。如果只有一个,那么
.Location
指的是单个单元格,您可以将其偏移以获得单个值。但是,如果有一组闪线,那么它将返回包含这些线的
范围
,您不能将其作为单个值。如果您尝试查看组中的每个小图标,则无法更改
MaxScaleType
CustomMaxScaleValue