【发布时间】: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(...)”,但它不起作用。我将不得不在这里采用另一种方法。感谢大家检查!