VBA編程常见错误原因分析.doc

  1. 1、本文档共11页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
VBA編程常见错误原因分析

VBA编程常见错误原因分析 ryueifu_VBA 前 言 目 录 Chapter 1 编译错误 5 1.1.1 忘记了声明变量 5 1.1.2 对象变量的类型,不存在,或者缺少引用 5 1.1.3 工程中,引用缺失,或路径不正确 6 Chapter 2 运行时错误 9 1.1.1 错误测试 10 1.1.2 =号左右两侧不匹配 10 1.1.3 成员或方法不存在 10 1.1.4 数组下标越界 10 1.1.5 集合中,成员不存在 11 1.1.6 文件或文件夹不存在 11 编译错误 编译错误,常常是程序还一句没有运行,就被检查出的错误. 忘记了声明变量 普通模块中,输入这个代码,运行 Option Explicit Sub MyCode() Set rg = ActiveCell MsgBox rg.Address End Sub 以上代码中使用了对象变量,但是没有事先定义.纠错的方法,有以下2种 规规矩矩定义 Option Explicit Dim rg As Range Sub MyCode() Set rg = ActiveCell MsgBox rg.Address End Sub 变量可以不定义 不推荐 Option Explicit Sub MyCode() Set rg = ActiveCell MsgBox rg.Address End Sub 对象变量的类型,不存在,或者缺少引用 Option Explicit Sub MyCode() Dim App As word.Application Dim doc As word.Document Dim rg As Ranges Set rg = ActiveCell rg.Value = App.Caption End Sub 上述程序,想在Excel VBA中操作Word,但是没有进行前期绑定;另外,Dim rg As Ranges这句,由于拼写错误,也会引起以下的对话框. 结构不配对造成的错误 Sub MyCode() Dim rg As Range Set rg = ActiveCell If rg.Value 0 Then rg.Font.Color = vbBlue End If End Sub 上面这个代码,End if 多余,造成了不配对.类似的还有 Sub End Sub, With End with Do Loop For Next Type End Type Function End Function等等 工程中,引用缺失,或路径不正确 以下这个代码,本身没有任何问题,但是由于引用中,有缺失的外部库,所以不能执行,这种现象,经常发生在 引用的dll文件被删. 其他人发来的Excel程序,使用之前,必须重新建立引用. 制作时,和使用时的Office版本不同,比如制作时,引用的是Word 2007,而使用的机器上,仅仅安装了Office 2003,这时候,容易出现以下错误. 在 VBE 的工具/引用中,可以看到,至少有一个外部引用,丢失.或者显示为Missing 解决方法: 先取消引用,再点击浏览按钮,找到目标的dll文件,即可. Sub RemoveBrokenRef() Dim ref As reference For Each ref In Application.VBE.ActiveVBProject.References If ref.IsBroken = True Then Application.VBE.ActiveVBProject.References.Remove ref End if Next ref End Sub 运行上述代码,可以快速清除所有破损的引用. 运行时错误 造成这种错误,原因很多种,有时候难以找出.下表列出一部分错误编号和描述. 1 应用程序定义或对象定义错误 51 内部错误 2 应用程序定义或对象定义错误 52 文件名或文件号错误 3 无 GoSub 返回 53 文件未找到 4 应用程序定义或对象定义错误 54 文件模式错误 5 无效的过程调用或参数 55 文件已打开 6 溢出 56 应用程序定义或对象定义错误 7 内存溢出 57 设备 I/O 错误 8 应用程序定义或对象定义错误 58 文件已存在 9 下标越界 59 记录长度错误 10 该数组被固定或暂时锁定 60 应用程序定义或对象定义错误

您可能关注的文档

文档评论(0)

fv45ffsjjI + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档