我的问题是 - 我有一个用数学公式填充页面的宏。对于某些单元格,公式给出了错误值。我想检查整个页面,每当错误发生时,我想将错误值换成0。
我的宏正在关注,我不知道我错过了什么才能让它发挥作用:
sub check()
For q = 2 To 321
For j = 24 To 81
A = WorksheetFunction.Type(Cells(q, j))
If A = 16 Then Cells(q, j) = 0
Next j
Next q
End sub
感谢您的任何建议。
答案 0 :(得分:2)
Type
不是WorksheetFunction
对象的成员。我很惊讶您没有报告错误消息。
如果您想使用Type
功能,则需要将其嵌入Evaluate
声明中。
或者您可以使用VBA IsError
功能。
下面的代码行检查当前单元格是否有错误:
If IsError(Cells(q, j)) Then Cells(q, j) = 0
答案 1 :(得分:2)
我认为SpecialCells()在这里非常方便
Range("X2:CC321").SpecialCells(xlCellTypeFormulas, xlErrors).Value = 0
答案 2 :(得分:1)
Excel在IFERROR()
函数中有另一种选择。
将您的数学公式设为A2 = 5/A1
。如果A1
为0,则该公式将返回错误,但如果您将其更改为A2 = IFERROR(5/A1, 0)
,则A2
的结果为5/A1
时将为0。< / p>
查看https://msdn.microsoft.com/pt-br/library/ee634765(v=sql.120).aspx以查看IFERROR功能的文档。
我看到它的方式,更改填充公式的宏比创建一个宏来做更好的内容有更好的内容函数。