首页 > 解决方案 > 动态自动填充目标

问题描述

需要一些有关此代码的帮助:

Dim numRows As Long

numRows = Cells(Rows.Count, "A").End(xlUp).Row

Selection.AutoFill Destination:=Range(Cells(1, 12), Cells(numRows, 12)), Type:=xlFillDefault

该宏应该用公式填充 L 列。它适用于具有多行但以以下结尾的文件:

Range 类的自动填充方法失败。

对于只有一行的文件。

标签: excelvba

解决方案


提示:

  1. 避免使用Selection. 在您的代码中,选择可能不是您认为的“选择”;)您可能想了解如何避免在 Excel VBA 中使用 Select

  2. 您的对象不完全合格。你可能想看这个

  3. 您可以使用.Formula它一次性输入整个范围内的值。

这是您正在尝试的(未经测试)吗?

Sub Sample()
    Dim ws As Worksheet
    Dim lRow As Long

    Set ws = Sheet1 '<~~ Change as applicable

    With ws
        '~~> Get the last row
        lRow = .Range("A" & .Rows.Count).End(xlUp).Row

        .Range("L1:L" & lRow).Formula = .Range("L1").Formula
    End With
End Sub

推荐阅读