【问题标题】:Implementing Excel formula in VBA在 VBA 中实现 Excel 公式
【发布时间】:2017-08-23 13:49:17
【问题描述】:

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

我的 Excel 公式:

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

我的 VBA 尝试:

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

这会产生以下错误:

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

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

【问题讨论】:

    标签: vba


    【解决方案1】:

    "" 必须是""""

    您显示的公式也需要输入数组,但您可以简单地这样做:

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

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

    这假定 IsEmptyorNothing 是一个 UDF,因为标准 Excel 中不存在这样的公式。

    【讨论】:

    • 谢谢,这确实有效。至于IsEmptyorNothing,奇怪的是它已经在我的 Excel 中了,或者至少我没有定义它。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-27
    • 1970-01-01
    • 2017-06-16
    相关资源
    最近更新 更多