魔方网表 让信息化更简单

 找回密码
 注册
查看: 2709|回复: 4

给初学者的几个实用建议!幅图配文

[复制链接]
lnxxnchzyl 发表于 2009-9-15 12:15:47 | 显示全部楼层 |阅读模式
在编写VBA代码时,注意以下几个细节,你将会事半功倍
1、启用VBE编辑器所列的 代码设置 的全部选项。

V1.gif (18.19 KB)
2009-7-19 11:10


1  自动语法检测:这样在编写代码时,系统随时会进行语法检测,每输入一行代码,系统就会自动检测当前行是否语法正确,如果出错会马上通知你,让你及时修正,而不是集中到编译时(运行前)才提示。及时报警可以让我们及时修正,否则时间一长,你自己都可能会要想半天,既提高效率,又减少错误。
2  自动列出成员、自动显示快速信息、自动显示数据提示:这在编程、单步执行时很有用途。比如,我们在编写代码时,输入了“thisworkbook.”,当你一输入这个”.”时,thisworkbook对象的所有方法、属性都以列表框形式出现在右边,供你选择。
V2.GIF (4.16 KB)
2009-7-19 11:10


自动显示快速信息、自动显示数据提示则是在代码调试阶段使用,一旦你在调试代码时,当鼠标停留在某个变量上方时,系统就会自动将其值用小框框提示出来。方便调试和监视。

V3.GIF (1.91 KB)
2009-7-19 11:10


3  要求变量声明:应该养成这样一个好习惯,变量使用之前先声明。这样有一个好处就是,在编写代码时,你已经定义的变量也自动进入了“自动完成”的清单,而且变量默认的方法、属性也可以实现自动完成。比如,你在代码中,声明了一个工作表对象,然后地代码中使用这个变量时,就可以具备和系统变量一样的功能。另外,还有一个好处就是,你可以不必记忆住变量的全部字符,输入几个字符之后就使用“自动完成关键字”功能,就可以在列表框中或者直接完成变量的输入。比如,下面的代码,当你输入”我”之后,使用“自动完成关键字”功能,相关的变量就可以在列表中选择,既保证了变量的正确性,也省略了记忆完整变量名的麻烦。
V4.GIF (4.51 KB)
2009-7-19 11:10

V5.GIF (5.56 KB)
2009-7-19 11:10



如果,声明时的变量在你使用“自动完成关键字”功能时,后面匹配的选项只有一个时,关键字就会自动完成输入,而不再弹出列表框。如:
Option Explicit
Dim 老朽的工作表 As Worksheet '声明一个工作表对象
Dim 我的工作簿 As Workbook
Sub zldccmx()
当你在代码中,输入老朽之后再启动“自动完成”功能时,时,老朽立即变成了老朽的工作表是不是很方便呢

 楼主| lnxxnchzyl 发表于 2009-9-15 12:16:07 | 显示全部楼层
2、擅于使用自动完成功能。前面列举了“自动完成关键字”功能的诸多好处,相信你没有理由不使用它。默认的快捷键是CTRL+空格。由于CTRL+空格同时是操作系统的切换输入法的快捷键,因此,我们就必须修改其中一个的快捷键。VBE比较霸道,没有办法修改快捷键,那我们就只有修改操作系统的快捷健了,将CTRL+空格腾出来给VBE用。
V6.GIF (14.59 KB)
2009-7-19 11:13


设置输入法属性,然后点键设置,找到操作系统指定快捷键为CTRLSpace的对应操作,然后修改其快捷方式,比如:
V7.GIF (7 KB)
2009-7-19 11:13


这样,在VBE中你就可以使用CTRLSpace调用“自动完成关键字”功能了。
回复

使用道具 举报

 楼主| lnxxnchzyl 发表于 2009-9-15 12:16:22 | 显示全部楼层
3、在代码中,我们可能会随时使用到ActiveCellActiveSheetActiveWindowActiveWorkbook等对象,尽管这些都是VBA的保留字,但是VBA却视它们为私生子,在代码中只能够完成关键字自动输入,但是却没有提供自动显示快速信息功能,当你输入完这些保留字时,该对象相应的方法和属性列表却不会显示出来。
V8.GIF (2.85 KB)
2009-7-19 11:15



怎么办?

老朽教你一招,使用我们的自定义变量功能,如右图:
V9.GIF (5.6 KB)
2009-7-19 11:15



[ 本帖最后由 zldccmx 于 2009-7-19 11:15 编辑 ]
回复

使用道具 举报

 楼主| lnxxnchzyl 发表于 2009-9-15 12:16:41 | 显示全部楼层
当你引用外部对象时,尽量使用前期声明调用,而不要图方便使用后期套用。

以引用字典对象为例:

所谓前期声明调用,就是在VBE中先引用对应的工程库,如图:
V10.GIF (11.96 KB)
2009-7-19 11:17


然后在代码中,就使用声明语句,当你输入完
Dim Dic As New ”之后,就可以在列举框中选择”Dictionary”,老朽英语N差,这个单词经常写错,使用这个功能之后就再也不用担心这个单词写错了。
V11.GIF (6.02 KB)
2009-7-19 11:17


当然,这样做的目的远远不止这个。这样前期声明引用之后,在编写代码时,字典对应的方法、属性就可以很轻松的调用,一目了然。
还是说到老朽的英语水平,那个检测字典中是否存在某一记录的方法.Exists,这么多年了,老朽硬是记不准,经常出错。经过前期声明引用,这种尴尬就不再出现了。
V12.GIF (2.79 KB)
2009-7-19 11:17



[ 本帖最后由 zldccmx 于 2009-7-19 11:17 编辑 ]
回复

使用道具 举报

 楼主| lnxxnchzyl 发表于 2009-9-15 12:17:00 | 显示全部楼层
大家根据下面的介绍,可以比较一下,取消前期声明引用,而是直接套用字典对象。
1  取消工程引用。

V13.GIF (11.89 KB)
2009-7-19 11:18


2  在代码中这样来套用字典对象
V14.GIF (5.01 KB)
2009-7-19 11:18


同样是引用外部对象,使用前期声明引用的好处就不言而喻了!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|魔方软件 ( 京ICP备08008787号 )

京公网安备 11010702001722号

GMT+8, 2024-4-29 03:14 , Processed in 0.109178 second(s), 15 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表