【问题标题】:How to paste a formula via Macro in cell? [duplicate]如何通过宏在单元格中粘贴公式? [复制]
【发布时间】:2018-05-16 21:11:04
【问题描述】:

我试图通过 VBA 在 Excel 单元格中粘贴一个公式,但没有运气。 当我尝试这段代码时,它完美地工作 -

ActiveSheet.Range("B7").Value = "=VLOOKUP(A7,$A$1:$B$3,2,0)"

但是当我尝试这段代码时

ActiveSheet.Range("B7").Value = "=VLOOKUP(CONCATENATE(VLOOKUP(LOOKUP(2,1/($A$5:A7<>""),$A$5:A7),Instructions!$A$4:$B$40,2,0),NTFS!XFC7-2),'Trial Balance'!$I$55:$J$1048576,2,0)"

最终出现错误 1004 运行时错误 - 应用程序定义或对象定义错误。

我只想将公式粘贴到任何其他代码都可以使用的单元格中。请帮我解释一下出现这个错误的原因,还请您想出一个破解或替代粘贴公式的方法。

提前致谢!

【问题讨论】:

  • "" 改为""""
  • 到底在哪里,我用过这么多次? @YowE3K
  • 该公式中只有一个 "" - $A$5:A7<>"" 部分
  • 不要把字符串外面的"改成""""就行了。
  • 天啊!!!非常感谢人! @YowE3K

标签: vba excel


【解决方案1】:

试试这个:

ActiveSheet.Range("B7").Formula = "=VLOOKUP(CONCATENATE(VLOOKUP(LOOKUP(2,1/($A$5:A7<>""""),$A$5:A7),Instructions!$A$4:$B$40,2,0),NTFS!XFC7-2),'Trial Balance'!$I$55:$J$1048576,2,0)"

注意 value 被替换为公式, 之后的引号被加倍了。

【讨论】:

  • 谢谢伙计。它有效!
【解决方案2】:

试试这个:

ActiveSheet.Range("B7").FormulaR1C1 = "=VLOOKUP(CONCATENATE(VLOOKUP(LOOKUP(2,1/($A$5:A7<>""),$A$5:A7),Instructions!$A$4:$B$40,2,0),NTFS!XFC7-2),'Trial Balance'!$I$55:$J$1048576,2,0)"

【讨论】:

  • 中间需要四引号A7&lt;&gt;""""
  • FormulaR1C1 用于罕见类型的单元格引用,如下所示: Range("D4").FormulaR1C1 = "=R[-1]C[-2]*10"
  • 谢谢伙计!这东西行得通!
  • @AnkushSurana 实际上,这个答案与您的原始代码存在相同的问题。 (字符串变为=VLOOKUP(CONCATENATE(VLOOKUP(LOOKUP(2,1/($A$5:A7&lt;&gt;"),$A$5:A7),Instructions!$A$4:$B$40,2,0),NTFS!XFC7-2),'Trial Balance'!$I$55:$J$1048576,2,0),这不是一个有效的公式。)我很惊讶您将其标记为已接受的答案。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-06-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-03
  • 1970-01-01
相关资源
最近更新 更多