如果单元格返回错误,则运行macros的macros

我需要运行一个macros来决定是运行另一个macros还是保持原样。 如果activecell.offset(3,0).value是错误,则运行SubMac_3。 如果没有错误,则保持原样。

Sub SubMacIfError() IfError ActiveCell.Offset(3, 0).Value then SubMac_3 SubMac3 Else ActiveCell.Select End If End Sub 

更新添加蒂姆·威廉姆斯评论(对于这个问题),因为那行代码是一点点清洁。

 Sub SubMacIfError() 'If Application.WorksheetFunction.IsError(ActiveCell.Offset(3)) Then If IsError(ActiveCell.Offset(3).Value) Then SubMac_3 Else ActiveCell.Select End If End Sub 

作为另一个一般说明,我会远离。select和ActiveCell除非你绝对需要。

如果您想为工作簿中的每个工作表执行此操作,请select“即时细胞”,然后使用以下命令:

 Private Sub Workbook_SheetSelectionChange(ByVal Sh As Object, ByVal Target As Range) If IsError(Target(4)) Then SubMac_3 End Sub