您的位置: 首页 > EXCEL技巧 > ExcelVBA >

避免工作表函数在VBA中产生运行时错误

时间:2013-12-04 整理:docExcel.net

大家知道大多数的Excel工作表函数可以用在VBA中,通过下面的方法来调用,例如对A1:A10单元格求和:

Sub Sum1()
  MsgBox WorksheetFunction.Sum(Sheet1.Range("A1:A10"))
End Sub

或:
Sub Sum2()
  MsgBox Application.Sum(Sheet1.Range("A1:A10"))
End Sub

但是如果在单元格中包含错误,例如上例中的A1:A10区域包含一个“#DIV/0!”错误,运行上述代码后将产生运行时错误。例如出现类似下图的提示:

 

为避免出现这样的错误,我们可以将单元格中的错误用数值“0”取代。用下面的代码:

Sub ReplaceErrors()
On Error Resume Next
   With Sheet1.Range("A1:A10")
  .SpecialCells(xlCellTypeFormulas, xlErrors) = 0
   MsgBox WorksheetFunction.Sum(.Cells)
   End With
On Error GoTo 0
End Sub

或者先进行一个错误检查,并给出提示:

Sub CheckForErrors()
Dim rErrCheck As Range
On Error Resume Next
   With Sheet1.Range("A1:A10")
  Set rErrCheck = .SpecialCells(xlCellTypeFormulas, xlErrors)
If Not rErrCheck Is Nothing Then
MsgBox "指定的单元格中包含错误!"
Application.Goto .SpecialCells(xlCellTypeFormulas, xlErrors)
  Else
  MsgBox WorksheetFunction.Sum(.Cells)
End If
   End With
On Error GoTo 0
End Sub

 

 

 

 

写Word文档输入1,怎样设置使它换行时自动显 问题:写Word文档输入(1),怎样设置使它换行时自动显示(2)
回答:在开头就输入(1)然后打字,输完这段文字敲回车键换行,(2)就会出来。
百度公布DuBike具体配置和全新设计图 问题:百度公布DuBike具体配置和全新设计图
回答:...导航系统,可以显示应该选择哪条线路,用户无需再在骑行时查看智能手机;还配备了刹车灯,在骑行时能够为所有车载电子零件充电;另外,通过应用程序,用户可以实时监控自行车的位置,解决被盗问题;最后,DuBike 还加...
另类方保护Excel工作表结构 问题:另类方保护Excel工作表结构
回答:...组公式的行或列。这样,当用户在A1:H14区域中插入或删除行时,Excel将给出“不能更改数组的某一部分”的提示。
微软推出City Art Search探索城市艺术馆和博物馆 问题:微软推出City Art Search探索城市艺术馆和博物馆
回答:...ity Art Search 可以来查找艺术家作品所在位置,或者规划旅行时参考。 City Art Search 搜索功能也非常详细,可以根据艺术品名称、艺术家、国家、地区、标签、时代来搜索,也有维基百科的链接了解更多,或订购该艺术作品的印...
Word2007中利用表格样式来制作传真表头 问题:Word2007中利用表格样式来制作传真表头
回答:...,使用表格样式来制作传真表头的好处就是当要增加列或行时,它会自动生成,方便快捷。 ①启动Word,首先插入一个表格,行数跟列数自己定,单击菜单栏--插入--表格按钮即可。 ②在页面中绘制出表格,单击菜单栏--设计--...
excel如何换行 问题:excel如何换行
回答:...可行,补充点希望对楼主有用,跟据我的经验EXCEL自动换行时如果有空格的话优先在空格位换行,楼主适当删除及添加空格试一试。2、将光标选到需要换行的位置ALT+ENTER(回车)键就可以了参考回答2:1、取消自动换行2、加大列...
相关推荐: