使用返回#ERROR的公式查找单元格
我的问题是以下 – 我有一个macros是用math公式填充页面。 对于一些单元格,公式给出错误值。 我想检查整个页面,每当发生错误,我想通过0交换错误值。
我的macros是以下,我不知道我错过了什么使其工作:
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
谢谢你的任何build议。
Type
不是WorksheetFunction
对象的成员。 我很惊讶你没有报告错误信息。
如果要使用Type
函数,则需要将其embedded到Evaluate
语句中。
或者你可以使用VBA IsError
函数。
下面的代码行检查当前单元格是否有错误:
If IsError(Cells(q, j)) Then Cells(q, j) = 0
我认为SpecialCells()在这里非常方便
Range("X2:CC321").SpecialCells(xlCellTypeFormulas, xlErrors).Value = 0
Excel在IFERROR()
函数中有一个替代scheme。
把你的math公式是A2 = 5/A1
。 如果A1
为0,则该公式将返回一个错误,但如果将其更改为A2 = IFERROR(5/A1, 0)
,则如果5/A1
的结果为错误,则A2
将为0。
查看https://msdn.microsoft.com/pt-br/library/ee634765(v=sql.120).aspx查看IFERROR函数的文档。
我看到它的方式,改变填充公式的macros比创build一个macros来做excel有一个内置的函数更容易。