彼此相减,但跳过字符串

时间:2019-05-22 07:49:14

标签: excel vba

我知道我可以用以下行减去整行:

ActiveWorkbook.Sheets(1).Range("A20:G20") = ActiveWorkbook.Sheets(1).Evaluate("A2:G2-A10:G10")

但是,我在几列中都有字符串。我尝试隐藏这些列,但这不会使Excel跳过它们。从理论上讲,我可以删除它们,然后再重新插入它们,但是如果可能的话,我想避免一个介于两个步骤之间的解决方案。

我正在使用两个工作簿,大约2500行和20列。

2 个答案:

答案 0 :(得分:2)

如果您的减法结果返回=IFERROR,然后用#VALUE!进行测试,在这种情况下,返回原始值:

.Evaluate("=IFERROR(A2:G2-A10:G10,A2:G2)")

如果减法错误,它将返回A2:G2中的值。

或者,您也可以检查数字:

.Evaluate("=IF(ISNUMBER(A2:G2),A2:G2-A10:G10,A2:G2)")

答案 1 :(得分:0)

您还可以使用如下代码:

[1,1,1,1]