Excel vba将公式从一列自动填充到Excel中的最后一列

Posted

技术标签:

【中文标题】Excel vba将公式从一列自动填充到Excel中的最后一列【英文标题】:Excel vba to autofill formulae from a column to last column in excel 【发布时间】:2017-07-03 09:41:58 【问题描述】:

我确实有一个宏,它在 N2 单元格中添加公式并自动填充到工作表的最后一行。

Sub Formulae_to_find_EachFeatureCount()
    Dim LastRow As Long
    LastRow = Range("G" & Rows.Count).End(xlUp).Row

    Range("N2").Select
    ActiveCell.FormulaR1C1 = "=COUNTIFS(C2,R1C,C1,RC7)"
    Range("N2").Select
    Selection.AutoFill Destination:=Range("N2:N" & LastRow), Type:=xlFillDefault
   ' Range("N2:N10").Select
End Sub

我还可以使用以下代码找到最后一列(列名和编号):

    Dim LastColumn As Integer
     'Search for any entry, by searching backwards by Columns.
    LastColumn = Cells.Find(What:="*", After:=[A1], _
    SearchOrder:=xlByColumns, _
    SearchDirection:=xlPrevious).Column
    LastCol = Replace(Cells(1, LastColumn).Address(False, False), "1", "")

现在我想将公式从 N 列自动填充到最后一个(使用过的)列。

【问题讨论】:

遍历列并填充第一个单元格,最后一次性使用自动填充 【参考方案1】:

我猜这就是你要找的东西:

Sub Formulae_to_find_EachFeatureCount()
    Dim LastRow As Long
    LastRow = Range("G" & Rows.Count).End(xlUp).Row

    Range("N2").Select
    ActiveCell.FormulaR1C1 = "=COUNTIFS(C2,R1C,C1,RC7)"
    Range("N2").Select
    Selection.AutoFill Destination:=Range("N2:N" & LastRow), Type:=xlFillDefault
    Range("N1:N" & LastRow).Select
    Selection.AutoFill Destination:=Range("N2:" & lastcol & LastRow), Type:=xlFillDefault
End Sub

注意:但是应该避免使用 SELECT

【讨论】:

是的,这就是我要找的。只需将 N1 更改为 N2 ,否则它将替换我在公式中使用的所有标题。有时公式计算不正确,要更新它们,我应该在计算选项之间切换> @SamadhanGaikwad - 是的,忽略了N1。但需要not calculated correctly 的详细信息。是公式复制不正确还是公式的结果? 公式被正确复制但有时会出现问题 1. 当我们单击任何单元格时计算被中断。 2. 当有成千上万的公式时。 @SamadhanGaikwad - 尝试在代码开头添加 Application.EnableEvents = FalseApplication.ScreenUpdating = False,然后在 ned 处将它们设置为 TRUE。 我会试试的。谢谢!

以上是关于Excel vba将公式从一列自动填充到Excel中的最后一列的主要内容,如果未能解决你的问题,请参考以下文章

Excel VBA 自动填充问题

Excel VBA自动填充只返回公式

Excel vba 仅自动填充空单元格

Excel 自动填充和调整公式

Excel VBA:自动填充公式的代码,无论左侧列的长度是多少(因此不需要指定范围)

自动填充 Application.Countifs.Formula VBA Excel