【问题标题】:Error handling - convert #NUM to zero错误处理 - 将 #NUM 转换为零
【发布时间】:2018-05-29 11:49:25
【问题描述】:

我正在编写一个宏来循环浏览许多格式完全相同的不同电子表格。源电子表格包含一个表中的数据,该表偶尔包含 #NUM 错误(由于不同模型中出现问题!)

我已经设法解释了所有其他错误类型和一些有趣的格式规则,使用下面的一些其他案例语句:

If IsNumeric(resultsarray(q,p) = false then

    Select case ResultsArray(q,p)

    Case IsError(ResultsArray(q, p))

                ResultsArray(q, p) = 0

    Case Left(ResultsArray(q, p), 2) = "0 "

                ResultsArray(q, p) = 0

不幸的是,#NUM 似乎不属于 IsError 的范围。有谁知道我可以简单地用零/0覆盖错误吗?

提前致谢!! 斯蒂芬

【问题讨论】:

  • 只需使用 if #num then 0 ...
  • 嗨@SolarMike 我已经尝试了 if 选项,但它给我留下了错误 2036 和类型不匹配 - 我很困惑,因为数组被定义为变体。很高兴接受任何其他建议!谢谢。
  • 您是否直接将单元格值分配给数组?如果您在resultsarray 上添加手表,那么您在#NUM 单元格上看到的内容是什么?是否显示价值Error 2036

标签: excel vba error-handling


【解决方案1】:

如果输入的数字不是有效数字,则会出现此 #NUM 错误。根据您的情况,我建议您检查输入是否为数字而不是错误检查。这样你也可以检查#NUM错误。(或者你可以同时做)IsNumeric(<input data here>)你可以做到。因此,只需在您的选择案例中再添加一个案例 (IsNumeric)。

【讨论】:

  • 嘿,感谢您的帮助 :) 我已经使用了 isumeric 并且该字段未通过该测试 - 我现在已将此添加到我的原始帖子中。错误的来源,在原始电子表格中, 是一个公式,然后将所有内容保存为准备导出的(粘贴特殊)值。我知道一定有一些简单的东西我错过了,但我一生都看不到它!
猜你喜欢
  • 2021-07-23
  • 1970-01-01
  • 2014-05-29
  • 1970-01-01
  • 2016-12-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多