如何使用Excel VBA移动选定的单元格?

时间:2018-08-20 17:50:29

标签: excel vba

我正在尝试自动化滚动日历电子表格,该电子表格可跟踪各种指标并将它们绘制成火花线。我想编写的脚本会在每次运行时在火花线上移动所选范围。

我做了一些googlefu,并尝试使用offset函数无济于事。这是因为数据位于预先定义的范围内,该范围默认为num 0,具体取决于用于首先填充电子表格的公式。

excel vba : selected cells loop

https://www.excel-easy.com/vba/examples/loop-through-entire-column.html

https://support.microsoft.com/en-us/help/291308/how-to-select-cells-ranges-by-using-visual-basic-procedures-in-excel

我一直坚持将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

1 个答案:

答案 0 :(得分:0)

您可以使用Sparkline.ModifySourceData或直接更改Sparkline.SourceData property,因为它看起来像您当前打算的那样。

此代码会将SourceData 1列向右移动-从F8:Q8G8: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

用迷你图引用单元格