使用VBA将excel sparkline scale设置为左侧的值
我试图在excel电子表格中循环浏览所有的小图标(500+)使用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
然后,我需要将垂直范围设置为每个小火花左侧单元格中的值。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