VBA - 如何自动填充到底部,直到最后一个 B 单元格包含数据

Posted

技术标签:

【中文标题】VBA - 如何自动填充到底部,直到最后一个 B 单元格包含数据【英文标题】:VBA - How to Autofill all the way to the bottom until the last B cell with data 【发布时间】:2020-05-05 17:17:03 【问题描述】:

我录制了一个宏,并尝试使用 COUNTIF 函数一直自动填充 C 列,直到 B 列具有其最后一个单元格值。它不适用于新数据,因此我尝试编辑宏并将其替换为 Range("D2:D") 但这不起作用。

Sub COUNTIF()
'
' COUNTIF Macro
'

'
    Range("D2").Select
    ActiveCell.FormulaR1C1 = "=COUNTIF(C[-3],RC[-3])>1"
    Range("D2").Select
    Selection.AutoFill Destination:=Range("D2:D")
End Sub

【问题讨论】:

Find the last row 并在您的范围参考中使用它。 【参考方案1】:

最好找到最后一个单元格。还要避免使用 select,因为它会减慢您的代码。

Sub COUNTIF()

Dim LastRowB As Long
LastRowB = Range("B" & Rows.Count).End(xlUp).Row
Range("D2").FormulaR1C1 = "=COUNTIF(C[-3],RC[-3])>1"
Range("D2: " & "D" & LastRowB).FillDown

End Sub

现在将您的 "=COUNTIF(C[-3],RC[-3])>1" 公式更改为您真正想要填写的任何内容。

【讨论】:

以上是关于VBA - 如何自动填充到底部,直到最后一个 B 单元格包含数据的主要内容,如果未能解决你的问题,请参考以下文章

如何让自动填充在 VBA 中工作?

VBA 自动填充 - 单元格引用变量

在 Excel VBA 中对一系列单元格使用自动填充

如何使用 VBA 动态自动填充目标?

如何自动填充活动单元格的列直到最后一行

VBA,向上/向下填充行以与最后一行对齐