lnxxnchzyl 发表于 2009-9-15 12:15:47

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

,在编写VBA代码时,注意以下几个细节,你将会事半功倍
1、启用VBE编辑器所列的 代码设置 的全部选项。

http://club.excelhome.net/images/GreenPark/attachimg.gif http://club.excelhome.net/attachment.php?aid=551074&k=cbe5e031f64a6180b40eebc38e0ea166&t=1252988097&noupdate=yes http://club.excelhome.net/images/attachicons/image.gif V1.gif (18.19 KB)
2009-7-19 11:10


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


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

http://club.excelhome.net/images/GreenPark/attachimg.gif http://club.excelhome.net/attachment.php?aid=551076&k=96b17c37b5fdf04a373d7dc22235d9a7&t=1252988097&noupdate=yes http://club.excelhome.net/images/attachicons/image.gif V3.GIF (1.91 KB)
2009-7-19 11:10


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

http://club.excelhome.net/images/GreenPark/attachimg.gif http://club.excelhome.net/attachment.php?aid=551078&k=62cd109717aaee0b5448e196cbaed949&t=1252988097&noupdate=yes http://club.excelhome.net/images/attachicons/image.gif 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用。
http://club.excelhome.net/images/GreenPark/attachimg.gif http://club.excelhome.net/attachment.php?aid=551082&k=52913c57081765df56d845368d7a46b5&t=1252988097&noupdate=yes http://club.excelhome.net/images/attachicons/image.gif V6.GIF (14.59 KB)
2009-7-19 11:13


设置输入法属性,然后点键设置,找到操作系统指定快捷键为CTRL+Space的对应操作,然后修改其快捷方式,比如:
http://club.excelhome.net/images/GreenPark/attachimg.gif http://club.excelhome.net/attachment.php?aid=551083&k=dcb34d078f48289e981ccdf73276a65f&t=1252988097&noupdate=yes http://club.excelhome.net/images/attachicons/image.gif V7.GIF (7 KB)
2009-7-19 11:13


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

lnxxnchzyl 发表于 2009-9-15 12:16:22

3、在代码中,我们可能会随时使用到ActiveCell、ActiveSheet、ActiveWindow、ActiveWorkbook等对象,尽管这些都是VBA的保留字,但是VBA却视它们为私生子,在代码中只能够完成关键字自动输入,但是却没有提供自动显示快速信息功能,当你输入完这些保留字时,该对象相应的方法和属性列表却不会显示出来。
http://club.excelhome.net/images/GreenPark/attachimg.gif http://club.excelhome.net/attachment.php?aid=551085&k=e26005b52101ca637996d0a261927ef4&t=1252988097&noupdate=yes http://club.excelhome.net/images/attachicons/image.gif V8.GIF (2.85 KB)
2009-7-19 11:15



怎么办?

老朽教你一招,使用我们的自定义变量功能,如右图:
http://club.excelhome.net/images/GreenPark/attachimg.gif http://club.excelhome.net/attachment.php?aid=551086&k=db7bfe4b11517c360a055b466b43fd25&t=1252988097&noupdate=yes http://club.excelhome.net/images/attachicons/image.gif V9.GIF (5.6 KB)
2009-7-19 11:15



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

lnxxnchzyl 发表于 2009-9-15 12:16:41

当你引用外部对象时,尽量使用前期声明调用,而不要图方便使用后期套用。

以引用字典对象为例:
所谓前期声明调用,就是在VBE中先引用对应的工程库,如图:
http://club.excelhome.net/images/GreenPark/attachimg.gif http://club.excelhome.net/attachment.php?aid=551089&k=c534bed5d85bcd5d91d08e66c2366709&t=1252988097&noupdate=yes http://club.excelhome.net/images/attachicons/image.gif V10.GIF (11.96 KB)
2009-7-19 11:17


然后在代码中,就使用声明语句,当你输入完
“Dim Dic As New ”之后,就可以在列举框中选择”Dictionary”,老朽英语N差,这个单词经常写错,使用这个功能之后就再也不用担心这个单词写错了。
http://club.excelhome.net/images/GreenPark/attachimg.gif http://club.excelhome.net/attachment.php?aid=551090&k=c5af95dd77c17bac6a49fcfb0d48f6b0&t=1252988097&noupdate=yes http://club.excelhome.net/images/attachicons/image.gif V11.GIF (6.02 KB)
2009-7-19 11:17


当然,这样做的目的远远不止这个。这样前期声明引用之后,在编写代码时,字典对应的方法、属性就可以很轻松的调用,一目了然。
还是说到老朽的英语水平,那个检测字典中是否存在某一记录的方法.Exists,这么多年了,老朽硬是记不准,经常出错。经过前期声明引用,这种尴尬就不再出现了。
http://club.excelhome.net/images/GreenPark/attachimg.gif http://club.excelhome.net/attachment.php?aid=551091&k=f7a23094404538f179cc1fca3dd887a1&t=1252988097&noupdate=yes http://club.excelhome.net/images/attachicons/image.gif V12.GIF (2.79 KB)
2009-7-19 11:17



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

lnxxnchzyl 发表于 2009-9-15 12:17:00

大家根据下面的介绍,可以比较一下,取消前期声明引用,而是直接套用字典对象。
1)取消工程引用。
http://club.excelhome.net/images/GreenPark/attachimg.gif http://club.excelhome.net/attachment.php?aid=551093&k=9ebaddc7fc3ccd2693d245cdcf4231bf&t=1252988097&noupdate=yes http://club.excelhome.net/images/attachicons/image.gif V13.GIF (11.89 KB)
2009-7-19 11:18


2)在代码中这样来套用字典对象
http://club.excelhome.net/images/GreenPark/attachimg.gif http://club.excelhome.net/attachment.php?aid=551094&k=a5f8d23c29474e338373f796f20a7af0&t=1252988097&noupdate=yes http://club.excelhome.net/images/attachicons/image.gif V14.GIF (5.01 KB)
2009-7-19 11:18


同样是引用外部对象,使用前期声明引用的好处就不言而喻了!
页: [1]
查看完整版本: 给初学者的几个实用建议!幅图配文