【问题标题】:Copy Down Formulas to Last Row将公式复制到最后一行
【发布时间】:2021-12-27 11:44:37
【问题描述】:

我有一个通过报告工具运行的 Excel 工作簿。

在工作表“数据”的单元格 I2、J2、K2、L2 和 M2 中,我有一个公式。

我正在寻找一个 VBA 脚本,它将这些单元格中的公式拖到最后一行可能的位置。 Col A 可用于确定最后一行的编号。

我一直在寻找一个有效的脚本,但我很难找到一个。请有人帮助我解决这个问题。下面是这 5 个单元格中的静态公式的屏幕截图。

Range("I2:I" & LastRow).Formula = "=IF(L2=1,IF(F2-E2>0,E2,IF(F2-E2<=0,F2,0)),IF(F2-E2>0,E2,IF(F2-E2<=0,F2-I1,0)))"

【问题讨论】:

  • Range("I2:I" & LastRow).Formula = "=IF(L2=1,IF(F2-E2>0,E2,IF(F2-E20,E2,IF(F2-E2
  • 你是怎么得到LastRow的?当你运行那行代码并得到错误时,它的价值是什么?

标签: excel vba excel-formula


【解决方案1】:

假设你的公式有效,不妨试试:

Lastrow = Range("H" & Rows.Count).End(xlUp).Row
Range("I2") = "=IF(L2=1,IF(F2-E2>0,E2,IF(F2-E2<=0,F2,0)),IF(F2-E2>0,E2,IF(F2-E2<=0,F2-I1,0)))"
Range("I2:I" & LastRow).FillDown

【讨论】:

  • 谢谢。我收到运行时错误 1004“对象 _Global 的方法‘范围’失败
  • @GrayMeiring 和以前一样的错误?
  • @GrayMeiring 尝试编辑
  • 由于I 列尚未填充,因此使用它来确定最后一行是没有意义的。
  • @braX 没看到截图,我把 I 栏换成了 H
【解决方案2】:

将公式输入I2:

Range("I2").Formula = "=IF(L2=1,IF(F2-E2>0,E2,IF(F2-E2<=0,F2,0)),IF(F2-E2>0,E2,IF(F2-E2<=0,F2-I1,0)))"

然后使用单独的行自动填充到最后一行

Range("I2").AutoFill Range("I2:I" & LastRow)

像这样:

    Range("I2").Formula = "=IF(L2=1,IF(F2-E2>0,E2,IF(F2-E2<=0,F2,0)),IF(F2-E2>0,E2,IF(F2-E2<=0,F2-I1,0)))"
    Range("I2").AutoFill Range("I2:I" & LastRow)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    • 2020-06-16
    • 1970-01-01
    • 1970-01-01
    • 2013-09-24
    • 1970-01-01
    • 2017-04-08
    相关资源
    最近更新 更多