我正在尝试自动化滚动日历电子表格,该电子表格可跟踪各种指标并将它们绘制成火花线。我想编写的脚本会在每次运行时在火花线上移动所选范围。
我做了一些googlefu,并尝试使用offset函数无济于事。这是因为数据位于预先定义的范围内,该范围默认为num 0
,具体取决于用于首先填充电子表格的公式。
excel vba : selected cells loop
https://www.excel-easy.com/vba/examples/loop-through-entire-column.html
我一直坚持将ActiveCell.SparklineGroups.Item(1).Item(1).SourceData
从其当前选定范围增加到PPTracking!G8:R8 ... H8:S8
...,等等,每次运行宏时。
这是我第一次在VBA中工作,非常感谢您的帮助!
Sub Macro4()
Dim selectedRange As Range
Set selectedRange = PPTracking!F8:Q8
Range("E5:E6").Select
Application.CutCopyMode = False
ActiveCell.SparklineGroups.Item(1).Item(1).SourceData = "PPTracking!F8:Q8"
Range("E5:E6").Select
End Sub
答案 0 :(得分:0)
您可以使用Sparkline.ModifySourceData
或直接更改Sparkline.SourceData
property,因为它看起来像您当前打算的那样。
此代码会将SourceData
1列向右移动-从F8:Q8
到G8:R8
,然后到H8:S8
,依此类推-使用原始的{{1 }}值作为SourceData
中的参考,然后Range
乘以1列。
它将Offset
连接到Parent.Name
,以获得完整的工作表名称和单元格引用。
Address
请尽量避免使用Sub ShiftSparklineData()
If ActiveCell.SparklineGroups.Count > 0 Then
With ActiveCell.SparklineGroups.Item(1)
.SourceData = "'" & Range(.SourceData).Parent.Name & "'!" & Range(.SourceData).Offset(, 1).Address
End With
End If
End Sub
;使用ActiveCell