代码之家  ›  专栏  ›  技术社区  ›  niko

Excel公式在VBA中的实现

vba
  •  0
  • niko  · 技术社区  · 7 年前

    我有这个Excel公式,我想通过VBA实现,不幸的是,它不断产生错误。

    我的Excel公式:

          IF(isemptyornothing(A1:A50); ""; IF(ISNUMBER(VALUE(A1:A50)); VALUE(A1:A50); A1:A50))
    

        Range("B1:B50").Formula = _
      "=IF(IsEmptyorNothing(A1:A50), "", IF(ISNUMBER(VALUE(A1:A50)), VALUE(A1:A50), A1:A50))"
    

    这会产生以下错误:

    运行时错误“1004”:应用程序定义或对象定义的错误

    作为VBA的新手,我不知道该怎么办。

    1 回复  |  直到 7 年前
        1
  •  0
  •   Scott Craner    7 年前

    "" 需要 """"

    此外,您显示的公式需要输入数组,但您可以简单地执行以下操作:

    Range("B1:B50").Formula = _
      "=IF(IsEmptyorNothing(A1), """", IF(ISNUMBER(VALUE(A1)), VALUE(A1), A1))"
    

    当公式被复制下来时,Excel会自动调整A1。

    IsEmptyorNothing 是自定义项,因为标准Excel中不存在此类公式。