最新WPS办公软件学习教程_免费企业办公软件下载_金山WPS Office官网论坛

 找回密码
 
查看: 6960|回复: 14

[VBA/VBS教程] 【VBA For ET 教材连载系列】五十三

[复制链接]

397

主题

72

听众

3057

积分

测试体验团员

Rank: 14Rank: 14Rank: 14Rank: 14

该用户从未签到

金币
3
威望
5028
帖子
2011
精华
11

特殊贡献奖 最佳教程奖 活跃会员奖

发表于 2009-12-15 16:39 |显示全部楼层
分享到: 新浪微博 腾讯微博
  五十三 常用语句透析(二十七)
  在开发程序时,一定会出现执行错误,包括可以预料的错误、意外的错误,以及开发者故意设置的错误等。在执行过程中有必要对这些错误进行处理,防止程序中断或者得到错误的运算结果。
; V6 S0 l& K  r还  有一种情况是重写VBA的错误提示,因为部分情况下VBA的提示可能并非实际的错误原因,用户无法从中获得有用的资讯,开发者有必要重写一个错误提示,使终端用户从中获取出错原因或者清楚正确的操作方式。8 O0 e$ \6 [7 {0 g. ]5 {% `+ a; w( i
  本节开始,将对程序出错的原因、含义、错误捕捉设置以及防错的方法进行一一解说。本节讲述错误类型及其原因.( {% l2 R4 K( M
  VBA内部对程序出错的原因有近100种解释,即表示错误类型有近百种。但若以大类进行划分,通常可以分为三类:- X! @. O7 [0 r( Q
l环境问题
: A; S1 c0 a% K2 Tl开发者“笔误”& C& P* X/ E+ U- w' O
l用户错误使用, z* `1 o5 ?" {& ]0 z; w6 x
一 环境问题
( V4 ?& {, G) W* G$ z* B6 S  此处指的环境问题是指WPS应用程序的环境,而这个环境又包括两方面:版本和Excel对象。
) e8 s2 w# l1 E  b2 K1 `2 \5 m  版本问题是指使用者的WPS版本与开发者的应用程序版本不同,造成代码上的兼容性问题。例如在ET 2009中能执行的的,复制到ET 2007就可能出错。因为Excel 2009加入了一些新的方法和属性.如果代码中涉及到了新的对象属性,ET 2007就不支持。
( q- X' b7 g- p. }& y& \: C3 t0 p  对象问题主要是指过程中涉及的工作表对象、工作簿对象、文件、图片等不存在,而对该对象进行读取自然会出错。一方面可能开发者的代码在容错性上未下足工夫,另一方面也可能是用户使用不当,使代码无法读取到指向的对象。9 ~& I" p( @, h8 g& D# ], U  n
二 开发者“笔误”& W* Z: {0 A8 |2 T7 [1 F0 a
  很多大中型插件或者系统都有10万行或者更多的代码,难免出现一个错误。包括标点符号的多写或者漏写,以及单词拼写错误等。
8 ^5 U8 g( v- t- x所以代码的测试显得极为重要。
: s7 v! `0 |+ \, ~7 s三 用户错误使用
8 i% m( ~; s# h' N  错误使用也包括两类:无意和有意。
' H& B+ q% ]% _  例如在工作表保护状态下执行了修改、汇总工作表数据的程序,工作表命名的程序中录入了非法字符,以及选择图片状态下执行了对选区进行查找、汇总之类的程序,无意中疏忽使程序无法进行。
$ P' f- \' B9 d: G6 }$ |' t( y  而有意的错误使用,主要是基于测试的心态,看看程序如何反应。例如以下语句:2 Q5 I* `: [7 ^
Sub 加解密(): E4 h' `2 M6 X  v
  Dim ans As Byte# T6 s! q# J" k, j9 m8 v  c6 C
  ans = InputBox("输入1:加密" & Chr(10) & "输入2:解密")* c7 f, j7 c- U
  '.....更多代码
6 c; ]. L1 U: pEnd Sub2 o* H- m4 P% C, d6 q$ O$ N
  在以上过程中,因为正常情况下变量ans只需在12这个范围之间变化,那么编程时将其数据类型声明为Byte。而用户可能会故意胡乱的输入300以上或者0以下的数据,那么程序就会中断,产生“溢出”错误。
! b) i9 }; |) l' z$ F3 c: o  基于以上各种原因,程序在使用过程中一定会出现错误。那么在代码中进行防错,就显得极为重要。

0

主题

0

听众

312

积分

LV.4

Rank: 4

该用户从未签到

金币
6
威望
838
帖子
66
精华
0
发表于 2013-9-21 18:46 |显示全部楼层
继续学习。
回复

使用道具 举报

110

主题

18

听众

2万

积分

LV.17

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

签到天数: 1181 天

[LV.10]以坛为家III

金币
2069
威望
66760
帖子
4062
精华
0

优秀会员奖 活跃会员奖

发表于 2014-12-14 14:48 |显示全部楼层
了解一下               
回复

使用道具 举报

110

主题

18

听众

2万

积分

LV.17

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

签到天数: 1181 天

[LV.10]以坛为家III

金币
2069
威望
66760
帖子
4062
精华
0

优秀会员奖 活跃会员奖

发表于 2015-4-12 09:56 |显示全部楼层
jsdbplt 发表于 2014-12-14 14:48
- ]' d* u) E0 i了解一下
, L) ~9 @5 P1 P' S* ]- H
学习一下            
回复

使用道具 举报

110

主题

18

听众

2万

积分

LV.17

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

签到天数: 1181 天

[LV.10]以坛为家III

金币
2069
威望
66760
帖子
4062
精华
0

优秀会员奖 活跃会员奖

发表于 2015-7-26 12:28 |显示全部楼层
jsdbplt 发表于 2015-4-12 09:56 $ G5 F0 r: {$ A- z" s* L0 H( d8 Z
学习一下
5 [( W2 A7 E* O) ^+ A
参考一下              
回复

使用道具 举报

110

主题

18

听众

2万

积分

LV.17

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

签到天数: 1181 天

[LV.10]以坛为家III

金币
2069
威望
66760
帖子
4062
精华
0

优秀会员奖 活跃会员奖

发表于 2015-11-22 08:37 |显示全部楼层
再看一下            
回复

使用道具 举报

110

主题

18

听众

2万

积分

LV.17

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

签到天数: 1181 天

[LV.10]以坛为家III

金币
2069
威望
66760
帖子
4062
精华
0

优秀会员奖 活跃会员奖

发表于 2016-3-20 06:58 |显示全部楼层
jsdbplt 发表于 2015-11-22 08:37 ) h5 ?3 e0 ~1 A0 v0 {) F
再看一下

) Z! F+ y: C# }4 [( ~' f继续看                  
回复

使用道具 举报

3

主题

3

听众

1万

积分

LV.15

Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15

签到天数: 1187 天

[LV.10]以坛为家III

金币
2350
威望
27020
帖子
3380
精华
0

优秀会员奖

发表于 2016-3-20 10:40 |显示全部楼层

. W! ?3 L# Z! M. E: z来学习教程!支持!
回复

使用道具 举报

110

主题

18

听众

2万

积分

LV.17

Rank: 17Rank: 17Rank: 17Rank: 17Rank: 17

签到天数: 1181 天

[LV.10]以坛为家III

金币
2069
威望
66760
帖子
4062
精华
0

优秀会员奖 活跃会员奖

发表于 2016-7-17 09:30 |显示全部楼层
看一下               
回复

使用道具 举报

15

主题

27

听众

1万

积分

活动策划团员

Rank: 14Rank: 14Rank: 14Rank: 14

签到天数: 1186 天

[LV.10]以坛为家III

金币
3569
威望
40299
帖子
11237
精华
0

WPS粉丝团 活跃会员奖 活动策划团 测试体验团 重阳节勋章 优秀会员奖

发表于 2016-7-17 12:13 |显示全部楼层

. G) c/ `% j, m8 z( e3 {: N  A感谢分享,支持楼主
回复

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 更多账号登录:

快速回帖:

fastpost

WPS论坛更新日志|WPS Office官方论坛     

GMT+8, 2017-11-20 08:07

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部