【问题标题】:VBA Apply Formula to All Cells not WorkingVBA将公式应用于所有不工作的单元格
【发布时间】:2017-11-09 05:15:08
【问题描述】:

我需要将公式应用于 Sheet2 上的所有单元格,并收到“对象'_Global' 的方法'范围'失败”错误。

这是我正在使用的 VBA 代码:

Range("D2:AJ" & LastRow).Formula = "=OFFSET(Sheet1!$D$2,(ROW(1:1)-1)+INT((ROW(1:1)-1)/2)*8,COLUMN(A:A)-1)"

公式从 Sheet1 中每 2 行复制一次并跳过 8 行,当我手动输入它时它正在工作。

你能告诉我我做错了什么吗?

非常感谢!

【问题讨论】:

  • 它对我有用,出错时LastRow 的值是多少?
  • 我相信我最后一次看到这个时,我参考的文档是针对不同版本的 Excel 的。您可能需要仔细检查。函数命名随着 Excel 的每次迭代而改变。
  • 如果LastRow 是一个实际值,该代码对我有用,如果它没有值,那么我会得到同样的错误。
  • LastRow 将是 0。 FWIW,您应该使用适当的 Worksheet 对象实例来限定 Range 调用 - 像这样没有限定,它指向隐藏的 _Global 模块,该模块基本上重定向到 ActiveSheet,因此 ActiveSheet.Range(...) 已经是一个改进。
  • 这很奇怪,我在最后一行确实有值,但仍然出现错误。我也将其更改为“ActiveSheet.Range(...)”,但它不起作用。我将不得不在这里采用另一种方法。感谢大家检查!

标签: vba excel


【解决方案1】:

您可以尝试将公式设置到第一个单元格中,然后按照此处的答案复制并粘贴到其余单元格中:Set formula to a range of cells

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-14
    • 1970-01-01
    • 2014-03-18
    • 1970-01-01
    • 1970-01-01
    • 2011-07-19
    相关资源
    最近更新 更多