Excel 或 VBA 问题?Range.自动填充方法有时会从我不希望它开始



我是VBA的新手,我正在尝试制作一个表单控制按钮,当单击该按钮时,它会自动填充一列非常复杂的公式,直到它到达动态数据透视表的末尾。数据透视表正在从另一个名为"数据导入"的表/选项卡中获取数据,该表/选项卡由资产及其各自的折旧信息组成。

因此,当我的"数据导入"选项卡可能有100个或更多资产时,这种方法效果很好,但当资产少于100个时,它会以某种方式开始在我希望范围/自动填充开始的地方应用上面的公式。更详细地说,如果我的数据透视表中有大约7个资产(7行(,并且我希望公式自动填充范围(O15:O400(,则它在(O5:O400&lt--也许O400。

代码:

Sub AutoFill()
Dim k As Long
'To get a number rows taken up by assets
k = Range("A15", Range("A15").End(xlDown)).Rows.Count
'To apply AutoFill at specified range
Range("O15").AutoFill Destination:=Range("O15:O" & k)
End Sub

我使用列A是因为它是资产的主键,因此,总是有主键的。

提前感谢!

您正在计算从第15行开始的范围内的单元格数,但希望该计数是最后一行。

如果End命中第30行,则Rows.Count将为16,而填充将仅填充O15:O16

如果最后一行是25,则计数将是11,并且要填充的范围将是O11:O15:

Sub AutoFill()
Dim k As Long
With Worksheet("Sheet1") 'Change to your sheet
'To get a number rows taken up by assets
k = .Range("A15").End(xlDown).Row
'To apply AutoFill at specified range
.Range("O15").AutoFill Destination:=.Range("O15:O" & k)
End With
End Sub

相关内容

最新更新