根据另一张表中的数据填写公式

Posted

技术标签:

【中文标题】根据另一张表中的数据填写公式【英文标题】:Fill Down Formula based on data in another sheet 【发布时间】:2016-05-16 14:06:04 【问题描述】:

我想构建一个宏来填写公式。正在从网站复制数据并分别粘贴到Sheet1Sheet2 包含用于清理和排列数据的公式,包括根据标准消除行。问题是,如果我在消除行之前填写公式,我会收到 #REF 错误。我想在宏中包含填充,因为我已经有一个可以删除行。我不想用字符 160 代替实际空间。我的宏放在下面。

代码:

Sub chng()

    Dim x As Long, lastrow As Long
    lastrow = Cells(Rows.Count, 1).End(xlUp).Row
    For x = lastrow To 1 Step -1
        If Cells(x, 2).Value = "SA" Or Cells(x, 2).Value = "EVC" Then
            Rows(x).Delete
        End If
    Next x


    Application.ScreenUpdating = False


    Columns("A:A").Select


    Selection.Replace What:=" ", Replacement:=" ", LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

    Application.ScreenUpdating = True


    Range("A1").Select

End Sub

换句话说,我想要完成的是,一旦我完成粘贴信息,运行宏,删除行,将字符 160 更改为实际空间,然后计算 Sheet1 上的行数(不包括标题)并填充以 sheet2 为基础,例如如果我有 140 行数据,我想从第 2 行向下填充到 141。

【问题讨论】:

【参考方案1】:

您可以捕获行数并为您删除的每一行递减它,然后使用该范围:

Dim x As Long, lastrow As Long, totalRows As Long
totalRows = lastrow

    Rows(x).Delete
    totalRows = totalRows - 1

然后,您可以将公式从第 2 行复制到 totalRows,无论它是什么列。

【讨论】:

编辑此部分: Dim x As Long, lastrow As Long, totalRows As Long lastrow = Cells(Rows.Count, 1).End(xlUp).Row totalRows=lastrow For x = lastrow To 1 Step -1 If Cells(x, 2).Value = "SA" Or Cells(x, 2).Value = "EVC" Then Rows(x).Delete totalRows = totalRows - 1 End If Next x 格式可能是这条评论有点奇怪。您是否已经有用于复制公式的代码?

以上是关于根据另一张表中的数据填写公式的主要内容,如果未能解决你的问题,请参考以下文章

如何把一个excel表中的公式粘贴到另一张表上?我用的2007版本的。

根据另一张表中的值更新一张表

循环遍历一张表中的列值并将另一列中的 COUNTIF 值粘贴到另一张表中

Excel VBA 评估另一张工作表中的公式

oracle如何根据另一张表中的一行的值来选择一列

SQL 显示一张表中的数据并计算另一张表中的结果