|
来源:http://blog.csdn.net/aspstu/ + J( m; E- o3 _1 i7 [
语句
4 c3 _, K4 l; s) x% pCall 9 t `6 k% @! S) N. z
[call] name [argumentlist] . Z6 Q {( |+ [" K( }# X
把控制转移到函数或子程序。当调用函数或子程序时,Call是可写可不写的。但是如果你用了Call,那么argumentlist必须用括号括起来。
+ l7 b9 _; |& p! W4 x+ l( EConst . v. }) @9 P O, f8 d& ^
[Public | Private] Const constantname=expression
# k k' k: ]+ a/ V& F用于申明常数。你可以在一行里申明多个常数,此时你必须用逗号把常数赋值语句隔开。 / H3 P" _1 G& X2 }) v @
Dim 6 {% U/ a- C7 [; z2 n c$ ?, o( W' K$ M
Dim varname[ ( [subscripts])][, varname [( [subscripts])]... . S: o) Q; `8 _. O: \* h0 l
创建一个新变量并且分配存储空间。
# O$ L2 ^; t2 r5 tDO . . . LOOP
- y* u. R' D: Y+ p7 L语法 1: ' F# Y+ a, r1 [
Do [{While | Until } condition ] * A+ }8 N1 P/ ~0 w+ H5 W
[statements]
: b* V: _$ v( Z. i# C6 q[Exit Do]
1 }" C# k7 o1 F. z H9 V; [[statements] # b J, a' Z8 D* c. u5 T
LOOP 0 q) k/ [* c, N3 V& ^
语法 2: 5 k; `0 z$ D. i
Do ( {2 h' t) h D0 G9 C/ e
[statements]
, Q% W) q6 m/ W( Q0 Z# e[Exit Do] 9 D h$ @- y% m: T: A( g
[statements] / o, r+ W' A Y6 J. @9 S% ~
LOOP [{While | Until } condition ] 2 v$ o5 ^! @) u+ w1 V; C5 U; v
当条件condition为真时或直到条件condition为真时,两种形式都重复执行语句。 4 a) {0 J8 |' R$ b/ z2 T7 J' N
Erase ( h5 T) q( r$ o5 l; g
Erase array 3 F0 r- f( g6 |0 c& X0 ]
清理数组,对于固定长度的数组,重新初始化元素;对于动态数组,重置存储空间。
4 s, y7 B8 t, _: vExit ' ~# b. A/ R& P; V4 j5 O4 W% P$ t
Exit Do
$ W6 C* S" i, S% Y+ x退出一个 DO . . . LOOP 循环。 # }% U$ B! T: y
Exit For
; Q5 k* M' `5 S7 i* Z7 ?退出一个 For . . . Next 循环或For Each . . . Next循环。
+ G3 d( H, p7 T8 W4 e# DExit Function 0 l, O) U* a7 }
退出一个 函数。 1 c) l# k/ @9 H% n
Exit Sub , O3 H+ S P* @2 P1 t- D
退出一个子程序。
! o+ U& B. z1 L# Y5 d' [: P5 XFor . . . Next : L g% T5 W% Z
For counter = start To End [Step step]
5 \7 u7 T$ {* t/ h[statements] / `3 ]3 G5 d9 {$ |) k) k
[Exit For]
5 C5 U) ?2 e% i1 v+ f: [6 O[statements] D- `) Z7 T1 x% _
Next # k. ? c! a4 v- `
由loop 计数器指定的次数重复执行statements语句群。
, V# ]' u- |& k9 W' _For Each . . . Next 6 {! l5 I2 s0 ?* r- h2 y5 _$ b
For Each element In group / x" y2 Y$ N2 c" O8 ]9 w+ v9 p1 j
[statements] * `* n, R4 @- M: _! `
[Exit For] 0 j& C8 o- t/ l: `+ n& i
[statements]
# ^* _$ q3 z" _* y+ H z9 [/ RNext [element]
) G' \! M) u0 h' t& X: d; A4 }! C( J对于每一个在数组或集合中的元素,重复执行statements语句群。 1 a3 f- d6 D# S* o9 s# L0 n" g' L- `
Function
: T$ o! m6 {6 v/ g0 t[Public | Private] Function name [(arglist)]
9 q7 M/ I+ S- K9 i n; k[statements] 2 g1 F- o5 [4 ^) C
[name=expression]
! n/ C/ ~3 A' @" t! K[Exit Function] $ T8 J) a* G* _8 l) g" O% ?& v" G
[statements]
q, ]1 n5 M! e( E% n[name=expression]
) p5 Y( j$ \/ DEnd Function - Y1 X. S( n7 {: Y
定义一个函数,指明函数名,参数及代码。 3 k( m7 d) _* h' ]- y& a" ~
If . . . Then . . . Else / q% M7 P0 M% g& O! s& n
语法1: / v$ i L. P; `) [3 q
If condition Then statements [Else elsestatements] ; p4 R! g) [( D( x9 q
语法2:
$ g' p: a7 H$ m9 @& Y) c9 VIf condition Then
' j2 V- M5 U$ R* v3 Ystatements
. O; ?3 g0 w: _[ElseIf condition-n Then
2 P' R& F5 G/ X& d9 E[elseifstatements]] . . .
4 x3 _# R$ y6 c# S' A0 N[Else 8 d% x% q; d. u8 q" t9 F7 H1 e( y' j/ a
[elsestatements]]
$ P e0 f9 z; E2 q$ y+ ?End If 0 I' j% O" J a0 z X, q4 n
两种格式都条件执行一系列语句。 : ~% ~! j8 x/ [! a
On Error
& ^/ h6 R+ k( Q; yOn Error Resume Next
, R% [: q; w0 ]8 k6 y# w9 f+ F; c当一个错误发生时,这条语句就执行紧靠发生错误语句后面的语句,或者执行紧靠调用进程后面的语句。 ' A( c" k) Z: X# H, @. ?: H
Option Explicit
% l& F7 G0 f# j7 D, H, D( LOption Explicit
! J; U! P: D; C% F在使用变量之前强制明确定义该变量,可以用Dim,Private,Public或 ReDim语句定义变量。 ; E X6 X7 {) \/ K
Private
9 l. I) P5 H' n1 M. \3 [ V! m5 rPrivate varname[([下标])][, varname[([下标])] . . . ! m9 L- M* l5 b8 g) x
创建私有变量并且分配存储空间。(私有变量只能在定义该变量的脚本中可用) # m4 _3 a: f. M
Public
6 v9 z- y4 W1 s8 g* ~+ @Public varname[([下标])][, varname[([下标])] . . . ( i5 I: ]& `6 ?9 \. {- a
创建公有变量并且分配存储空间。(公有变量在程序的任何地方均可使用) + V; K* u9 j1 ^( J
Randomize
) I' k" H7 E( k1 d# yRandomize [number]
8 g I1 Q# F9 P给Rnd函数的随机数发生器一个新种子值。 : P9 L- L9 v6 M5 o$ f
ReDim ' B/ m1 @" T: F; g3 O7 Y0 M x
ReDim [Preserve] varname(subscripts)[, varname(subscripts)] . . . 9 b0 c0 m J' ^/ l3 P# E
修改维的下标,大小;或重置动态数组的大小。Preserve 保护已存数组的数据。 2 Z% q* D j' x' e' P
Rem # ]! E, H' j& S/ c* h7 d" z
语法1:
+ r: s: B' ]! g/ {Rem comment
0 v% O( ?9 ~5 w# X- j- u语法2: 3 F% C! B" Q$ r+ ]2 z
‘comment
$ I3 C. U9 N8 H' V8 c" J8 @! `这两种语句形式都能使注释的句子不被处理。如果Rem和其它语句在同一行上,Rem 语句必须在后且二者之间必须用冒号隔开。
9 h i5 q4 R1 l0 U5 F1 BSelect Case % u7 g( T# Z8 w) V% t, F0 w3 a
Select Case testexpression
/ c9 x) b; K" s' `; Q9 B8 ~0 r[Case expressionlist-n ; R( W+ a7 t4 B/ T q4 ]3 n
[statements-n]] . . .
# P, M& O U3 [% `[Case Else expressionlist-n
! k7 m! r, O& V+ Y3 F[elsestatements-n]] ( ^5 m0 M/ o& P9 x, q- a
End Select
1 D) b5 y' v, [- [8 }; a如果某一个expressionlist 和testexpression 匹配,则执行和expressionlist对应的语句;如果没有一个expressionlist 和testexpression 相匹配,则执行和Case Else 相对应的语句。
9 X; R$ G8 z/ c5 B: gSet
" c- j$ Q8 L2 e! JSet obectvar= {objectexpression | Nothing}
8 B0 x' p3 f- q$ F4 ?赋予一个变量或一个性质对象引用。当赋予的值为Nothing 时,使obectva 和任何以前指明的对象解除关系。 . J8 [/ z8 a" {9 D, M4 N9 [" K
Sub , X4 _, f$ h& V1 o8 S) R
[Public | Private] Sub name [(arglist)]
$ p/ i" b( `3 u7 Q7 X5 q" R- l3 g[statements]
% Q9 l3 n: N. L8 z[Exit Sub]
" e' y V3 o; o. U$ J# D- D9 a, Q[statements]
/ x1 x4 ]& J2 ?! @; ]& OEnd Sub , \' h# F9 K, s& u" i2 R8 b
定义一个子程序,指明名称,参数及代码。 ! k- p$ w. n, l' Z$ ~0 {
While . . . Wend 5 Y' d3 m. L/ e8 O3 k( r2 V
While condition $ ?! }$ R+ b! x- m0 w* V! V
[statements] - A ]+ b v8 D! O+ r: o- z
Wend
: i; n" m% P; \" ?/ R+ {不停地连续执行语句statements 直到条件condition为True。 # r3 h9 Q$ [; H$ ?* Z( x' G
& B5 U/ k8 q4 r0 a |