gpt4 book ai didi

excel - 宏到自动填充

转载 作者:行者123 更新时间:2023-12-02 10:27:20 24 4
gpt4 key购买 nike

我想在 P 中创建一个名为 Age of Ticket 的列。它正在计算两个日期,然后自动填充。该宏将用于行数不同的报告。当我使用它时,它基本上在 P2 上进行计算,然后在 P1(标签所在的位置)上进行计算并且不会自动填充。

Dim LastRow As Long

LastRow = Range("P65000").End(xlUp).Row

Range("P1").Select
ActiveCell.FormulaR1C1 = "Age of Ticket"
Range("P2").Select
ActiveCell.FormulaR1C1 = "=RC[-5]-RC[-8]"
Range("P2").Select
Selection.AutoFill Destination:=Range("P2:P" & LastRow)
Range("P2:P3000").Select
ActiveWindow.SmallScroll Down:=210

[结果]

enter image description here

最佳答案

问题是添加时该列为空。因此,您的代码告诉 Excel 转到 P65000 并模仿按 ctrl-upArrow。这将找到第一个具有值的单元格,但由于没有值,因此它会停在顶部单元格 P1,因此 LastRow = 1。因此填充区域为 P2:P1。使用其中包含数据的列。我使用了 K 列,因为它在您的公式中。

这是使用记录宏并尝试进行清理的一个很好的例子。清理代码时,重点应该是去掉 .Select。请参阅here无需 .Select

就可以很好地编译引用范围的方法

此外,当使用.FormulaR1C1时,可以一次性设置整个范围,不需要向下填充。

将上面的代码修改为:

Dim LastRow As Long

LastRow = Range("K65000").End(xlUp).Row

Range("P1").value = "Age of Ticket"
Range("P2:P" & LastRow).FormulaR1C1 = "=RC[-5]-RC[-8]"

此外,如果您想使用自动填充,则无需使用 r1c1 公式。

Range("P2").Formula = "=K2-H2"
Range("P2").AutoFill Destination:=Range("P2:P" & LastRow)

这会自动更改相对引用以保持行正确。

关于excel - 宏到自动填充,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33786823/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com