【问题标题】:Inserting formula results in Run-time error 1004插入公式导致运行时错误 1004
【发布时间】:2017-08-10 15:27:32
【问题描述】:

我有一个插入一些公式的 vba 脚本。由于某种原因,它拒绝插入 VLOOKUP 函数;它给出了一个运行时错误 1004: Application-defined or object-defined error。

我的代码如下:

Worksheets("Sheet1").Cells(row, 16).Formula = "=vlookup(O" & row & ";Sheet2!$A$2:$H$250;5;FALSE)"

我一直在尝试各种变体来找出触发错误代码的原因。如果我尝试废话公式

Worksheets("Sheet1").Cells(row, 16).Formula = "=vlookp(O1)"

它不会产生错误并将公式放在相应的单元格中。如果我只更改一个字母,通过将 vlookp(01) 设置为 vlookup(01) 它会再次生成错误。

知道发生了什么以及导致此错误的原因吗?

发送!! 巴特

【问题讨论】:

    标签: excel vba


    【解决方案1】:

    您使用; 作为公式的分隔符,Excel 非常面向英语,它喜欢在公式中找到,

    所以把你的公式改成:

    "=vlookup(O" & Row & ",Sheet2!$A$2:$H$250,5,FALSE)"
    

    或改变:

    Worksheets("Sheet1").Cells(Row, 16).Formula
    

    到:

    Worksheets("Sheet1").Cells(Row, 16).FormulaLocal
    

    【讨论】:

    • 这解释了为什么我在公式中看到分号以及.Formulalocal 的用途。干得好
    • @ThomasInzina 欢迎回来,c# 进展如何?
    • 这不是...大声笑我决定继续保持编程的爱好。感谢询问
    【解决方案2】:

    用逗号替换公式中的分号。

    Worksheets("Sheet1").Cells(Row, 16).Formula = "=VLOOKUP(O" & Row & ",Sheet2!$A$2:$H$250,5,FALSE)"
    

    【讨论】:

    • 让我领先几秒 (+1) ;但我不得不输入更多
    【解决方案3】:

    不是直接的答案,而是解决问题的方法:
    在单元格 P2(或任何其他单元格)中手动输入公式,然后按 ctrl+G 转到调试窗口,然后键入 print range("p2").formula
    这应该可以准确了解 Excel 期望公式在 VBA 中的样子。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-02-11
      • 2022-12-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-09
      • 1970-01-01
      • 2016-01-13
      • 2016-10-26
      相关资源
      最近更新 更多