我是VBA的新手,我正在尝试制作一个“表单控制按钮”,该按钮在单击时会自动在列中自动填充一个非常复杂的公式,直到到达动态数据透视表的末尾为止。数据透视表从另一个称为“数据导入”的工作表/标签中获取数据,该工作表/标签包含资产及其各自的折旧信息。
因此,当我的“数据导入”选项卡上可能包含100个或更多资产时,此方法可以很好地工作,但是当数量少于100个时,它将以某种方式在我希望范围/自动填充开始的地方开始应用公式。详细地说,如果我在数据透视表中有7个资产(7行),并且希望公式自动填充范围(O15:O400),它将开始在(O5:O400)<-也许是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列是因为它是资产的主键,因此,总会有主键。
谢谢!
答案 0 :(得分:2)
您要计算的范围是从第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