首页 > 解决方案 > Excel VBA自动填充未填充第一行和第一列

问题描述

我需要将公式从一个单元格复制到一个单元格块中。我曾尝试使用 AutoFill,它在一定程度上有效,但它不会填充第一行或第一列。

我在 C4 中的公式应该复制到整个块 C4:X12。(在现实生活中,它是求和积。)

Sub GetUniqueLocationsTEST()
    Dim LastRow As Long
    Dim LastCol As Long

    With thisWorkbook.Worksheets("sheet2")
        LastRow = .Cells(.Rows.Count, "B").End(xlUp).row
        LastCol = .Cells(3, .Columns.Count).End(xlToLeft).Column
        .Range("C4").formula = "=1+1"
        .Range("C4").AutoFill Destination:=.Range("C4:X12") ', .Cells(LastRow, LastCol))
    End With
End Sub

结果 C4 显示“2”,范围 D5:X12 正确显示“2”。但是 D4:X4 和 C5:C12 是空白的 - 那里没有复制任何内容!如果我将其他随机文本放入这些单元格中,则在运行 Sub 后它仍然存在。

在示例代码中,您会看到我什至将目标范围强制为文字。

也许自动填充不是正确的方法?我应该使用复制吗?或者是其他东西?

标签: excelvba

解决方案


你可能不需要AutoFill. 您可以一次性将公式写入整个范围,如果需要,Excel 将更新相关引用:

.Range("C4", .Cells(LastRow, LastCol)).Formula = your formula

推荐阅读