|
来源:http://blog.csdn.net/aspstu/
& f, Z8 G' r$ K( u语句 z; [% s/ e" K. J; D' Z
Call
5 C5 w% A) p3 D) b7 t$ v2 P8 K[call] name [argumentlist]
! s! M/ d7 f5 n) l把控制转移到函数或子程序。当调用函数或子程序时,Call是可写可不写的。但是如果你用了Call,那么argumentlist必须用括号括起来。
8 H5 `0 o" d) h5 i& OConst
9 l6 `( r" M" Q( A. R# c[Public | Private] Const constantname=expression
* x8 S% `/ A1 Z/ Q7 D) v; O+ o用于申明常数。你可以在一行里申明多个常数,此时你必须用逗号把常数赋值语句隔开。 : T+ |1 m& B0 Z. M
Dim : J( c# U7 \, M S& v2 U+ L+ s3 S
Dim varname[ ( [subscripts])][, varname [( [subscripts])]... / M* H" P' P' |7 w
创建一个新变量并且分配存储空间。 . k+ J# t5 ~) }7 ?* ^
DO . . . LOOP
& ], C+ B: D, g6 W/ n( M9 f语法 1: # l! q, M' O+ H4 x
Do [{While | Until } condition ]
2 i( g( r. F7 N! T( E[statements] ( i6 v1 \0 F2 \, B# B1 o T
[Exit Do] ! A! C( X- e! j/ Z2 j1 V1 I+ a
[statements] ! F3 X! i. z: o4 ~4 Y4 N
LOOP + v4 ?+ l5 d7 ^2 ?
语法 2: 3 E4 k7 x% F' H. V: ^1 c- R# j; \ u
Do , F+ n- w* @) U( D- X2 ~* Y/ u6 C/ x; X
[statements] T" L# i4 Z4 W$ k x0 k
[Exit Do] % O# P& ]5 P8 x. Q- O2 ~
[statements] ; ^# D9 I" N9 X8 G1 `
LOOP [{While | Until } condition ]
- A5 q2 J7 |2 D8 P当条件condition为真时或直到条件condition为真时,两种形式都重复执行语句。 3 P- K) E' w6 [- O- x$ e
Erase
+ }% P0 ?4 ^! u$ H1 G% R9 I \. ]Erase array
/ ]1 @! \3 v( I) \6 V0 Q$ M8 H0 Y清理数组,对于固定长度的数组,重新初始化元素;对于动态数组,重置存储空间。
. i, z4 S3 A- S2 qExit - E& s2 k! ^5 d
Exit Do 0 d3 |0 G$ N' Z, x) w
退出一个 DO . . . LOOP 循环。
( r$ f% c4 Z( \! p; oExit For - T0 n- h% Q p
退出一个 For . . . Next 循环或For Each . . . Next循环。 $ M0 E0 }3 g4 @/ U5 q
Exit Function " ]3 B. O7 ~1 V4 x8 [6 i
退出一个 函数。
" W2 s3 \. J" T9 t9 XExit Sub
4 I9 z; ~4 J& ]! h) ]) V8 M" e9 x4 D9 \退出一个子程序。
1 m8 r! W Z4 [1 ^. q0 P: z0 V, lFor . . . Next
: {3 _6 c& R6 u- c/ L1 |For counter = start To End [Step step] 8 o8 i7 o& l1 h# C; T
[statements] 3 k. `7 d- i0 B$ {
[Exit For] - J, n' e% {; y; {+ f/ L
[statements]
3 Z% D9 k/ W) k3 @4 j$ K5 o. o0 `" ZNext
. @, Y" r; W5 U) e+ I) u由loop 计数器指定的次数重复执行statements语句群。
+ n: O: o9 @5 E7 EFor Each . . . Next / z) ]6 u8 T$ {: R. m$ h6 [- _
For Each element In group & A! ]5 F( D+ u
[statements]
1 x3 G3 J2 m5 H6 A. c+ U[Exit For]
K4 x) K* |. g[statements] 7 }$ d, v* H9 J+ Y- A0 _
Next [element] 5 X1 Y' D+ y9 {& W p, K
对于每一个在数组或集合中的元素,重复执行statements语句群。
; Q3 q( g5 ] c' @Function
6 }% z8 p1 q" s2 j[Public | Private] Function name [(arglist)]
( `6 f! j% @; ^( T; [[statements] 7 S! m( E' y( s, }5 b
[name=expression]
* F% F$ o2 R$ S4 z[Exit Function] 2 h7 G7 m5 Q7 z( x* u# A
[statements]
+ S& A- K, F2 f& T[name=expression] 5 h @% l0 L9 K% ^( w+ t
End Function
, p5 e+ Y- K) `3 a: j定义一个函数,指明函数名,参数及代码。
" s7 c6 s. [ N2 |; mIf . . . Then . . . Else ; ? I s8 s; s4 a+ u" Q
语法1:
0 p$ }! v8 K4 A1 @1 G ?! gIf condition Then statements [Else elsestatements]
" c# z5 M# X* y! `( k语法2:
- `5 s* r, a; S4 E; iIf condition Then % ~( G: m/ F. j0 W0 G! E7 d5 p
statements 0 x! x# {# F. @' F8 I
[ElseIf condition-n Then
( K$ X4 u% ~ d% I( c; N[elseifstatements]] . . . 4 _+ z, ^) A* _, |- f/ Y7 g- C1 g- s
[Else 4 [3 O( x" W1 P8 o9 F8 T8 z
[elsestatements]] 2 o& ]: B* t; R
End If 6 v$ W( c \1 [" E9 K: H
两种格式都条件执行一系列语句。
( p! ~! r- k! W1 N5 t$ y5 D! `* dOn Error " M# X3 ?0 E. M8 m4 n% `/ K& ^
On Error Resume Next - D. {1 V S* [: f
当一个错误发生时,这条语句就执行紧靠发生错误语句后面的语句,或者执行紧靠调用进程后面的语句。 ; I/ U! J% m t3 C
Option Explicit $ ]2 _6 o x8 u
Option Explicit 1 Z' d) H! {3 M% M) H
在使用变量之前强制明确定义该变量,可以用Dim,Private,Public或 ReDim语句定义变量。
; V& k9 |- e- o+ ^4 _* yPrivate
+ A- s$ T2 @, ?Private varname[([下标])][, varname[([下标])] . . . ) x6 Y" b2 b6 @" ~# ]3 G
创建私有变量并且分配存储空间。(私有变量只能在定义该变量的脚本中可用)
+ s2 @/ M9 d1 c/ iPublic 9 y& J4 \$ _" \2 y6 y" h% s
Public varname[([下标])][, varname[([下标])] . . .
7 O* h& z5 r3 m# I& N8 F创建公有变量并且分配存储空间。(公有变量在程序的任何地方均可使用)
! \9 Y. E6 W) a, [Randomize * d- _, V/ u4 x: ~9 T1 @
Randomize [number] 5 `* k1 q, k- x$ ?4 P+ _. c
给Rnd函数的随机数发生器一个新种子值。 - N0 k& _# i4 \, }1 S
ReDim P! T7 n+ I2 V9 E% v+ I
ReDim [Preserve] varname(subscripts)[, varname(subscripts)] . . . ; Q: B/ h# T0 C1 R' n7 G# y5 c
修改维的下标,大小;或重置动态数组的大小。Preserve 保护已存数组的数据。
: U0 |& o8 f, d/ B$ GRem 2 }* Y9 F6 \/ B! p. H
语法1:
6 C1 r Y+ X0 {+ oRem comment " W8 c) L; \" a k8 q$ G+ c) g
语法2:
- i9 ~8 Y7 ~/ [$ s! G5 \5 T‘comment ' S0 t& `0 ^+ p7 M7 }7 t
这两种语句形式都能使注释的句子不被处理。如果Rem和其它语句在同一行上,Rem 语句必须在后且二者之间必须用冒号隔开。
1 T# o; \: j+ f4 {Select Case ) }+ p c8 o) V2 L# s- n: B. ?
Select Case testexpression ( g5 b3 B" h% c" q
[Case expressionlist-n
, m0 x6 `2 |8 l) T[statements-n]] . . .
. F! ?& j4 g0 k5 Y+ q+ z[Case Else expressionlist-n ) r2 y/ ?, c7 g2 V% Y4 R
[elsestatements-n]] % w+ s! K4 t+ W+ h' h
End Select 8 u- c7 T& [: S1 h: k
如果某一个expressionlist 和testexpression 匹配,则执行和expressionlist对应的语句;如果没有一个expressionlist 和testexpression 相匹配,则执行和Case Else 相对应的语句。 : ]% a2 N; h6 |, ^0 ^
Set , u* t& A* y" m. L- j- g
Set obectvar= {objectexpression | Nothing} # I8 w' Y6 `( X
赋予一个变量或一个性质对象引用。当赋予的值为Nothing 时,使obectva 和任何以前指明的对象解除关系。
9 O6 C7 m" n, @$ i+ \+ ~2 b6 uSub 3 I! _; q% C- v6 X6 d3 e
[Public | Private] Sub name [(arglist)]
7 b+ w# X6 ^! F) U3 G0 l0 z% W[statements] 0 ~0 U8 N/ j0 T# j3 j
[Exit Sub] % A2 J* B' ^( F; i) Q
[statements] / L3 ^" C B. z5 D8 }6 E/ a
End Sub
" U3 m* R2 ^5 k @定义一个子程序,指明名称,参数及代码。 , Y/ }# K' {6 k: s: a
While . . . Wend 4 I% e; ]# ]; `+ ~8 R5 ]! K' |( z
While condition
3 V( n" ]' Z3 O3 s: B[statements] ; v- v5 W0 ] r0 B( x
Wend
# R: a9 D$ W0 H& U V6 l- X不停地连续执行语句statements 直到条件condition为True。 & U& R: j2 P& l6 ]/ w7 [/ [
# }- V0 J6 m+ O2 w |