Excel 或 VBA 问题? Range.Autofill 方法有时会在我不希望它出现的地方开始

Excel or VBA Issue? Range.Autofill Method sometimes starts where I don't want it to

我是 VBA 的新手,我正在尝试制作一个表单控制按钮,当单击该按钮时,它会自动填充一个非常复杂的列,直到它到达动态枢轴的末尾 table。枢轴 table 正在从另一个名为 "Data Import" 的 sheet/tab 获取数据,其中包含资产及其各自的折旧信息。

因此,当我的“数据导入”选项卡可能包含 100 个或更多资产时,此方法效果很好,但当少于此时,它会以某种方式开始应用上面我希望 range/autofill 开始的公式。详细来说,如果我的数据透视表 table(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 列是因为它是资产的主键,因此,主键始终存在。

提前致谢!

您正在计算从第 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