使用返回#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有一个内置的函数更容易。