|
来源:http://blog.csdn.net/aspstu/ 8 m/ z# P7 O$ n( O, a8 A* M
语句* E7 }! z/ u1 i8 L- C
Call
5 r8 f6 R( u) U$ Y" x[call] name [argumentlist]
+ u4 S9 X# e x把控制转移到函数或子程序。当调用函数或子程序时,Call是可写可不写的。但是如果你用了Call,那么argumentlist必须用括号括起来。
& E2 ?* z" _1 N9 rConst 4 b* Q* W1 a. v" U
[Public | Private] Const constantname=expression
" ^9 P1 s" w/ E" O- B用于申明常数。你可以在一行里申明多个常数,此时你必须用逗号把常数赋值语句隔开。 7 q! f4 y& l1 m T- P6 G
Dim 1 Q, T6 X+ Y2 n+ G4 X
Dim varname[ ( [subscripts])][, varname [( [subscripts])]... ' f# A0 U( z/ S. q
创建一个新变量并且分配存储空间。
8 }: L$ W& _) wDO . . . LOOP # Q6 f, Z m. m2 {& j
语法 1: * k4 I8 K! @+ e2 h6 ~
Do [{While | Until } condition ]
' B' k' h0 Z# u- ^7 F7 p[statements] , V& Y+ b5 G, \
[Exit Do] # o# W- J& K) l# s \2 o
[statements]
, A6 o, i. U \% Z z6 lLOOP
5 Z& A2 z& u8 O% J语法 2: 9 G+ o& B' h& X4 D
Do ! I# J, D& ?( z' s, V
[statements]
$ l: V% a6 L4 {4 v: H" z9 Z3 ?& V[Exit Do] : [. Z S: m H/ o
[statements]
# Q4 q& t H5 F Z6 E. d7 ~5 T# o: PLOOP [{While | Until } condition ] / v& n. X8 V4 P3 N
当条件condition为真时或直到条件condition为真时,两种形式都重复执行语句。 " A' s4 D$ g! h2 D0 p; _8 _
Erase 3 a8 T; z: D7 E4 k6 g
Erase array
7 f7 j, B! k' _1 v' M. ^, o' ~, x清理数组,对于固定长度的数组,重新初始化元素;对于动态数组,重置存储空间。
# f4 [) Y0 O2 G9 j3 cExit 8 i3 j# W: `6 h( \. n- v
Exit Do # P& ~ C7 A4 J' D* a, v! l6 k
退出一个 DO . . . LOOP 循环。
0 |# A% x3 m7 P" G* Z1 c) FExit For
, ~1 \; W4 |' f) r3 b* k; G1 _退出一个 For . . . Next 循环或For Each . . . Next循环。 . O b' e* ]; e3 j! y/ {
Exit Function , @+ L" W8 a- u: o
退出一个 函数。 i+ T: N6 V" z
Exit Sub
1 w" Y2 R: s9 n退出一个子程序。 4 S0 f7 ]/ K3 _- U& [
For . . . Next
1 y: S) _1 b8 {1 R: l" fFor counter = start To End [Step step]
* w @9 E# i8 l6 w5 f[statements] - ^( ^2 n, ?5 k6 j& r
[Exit For] ' G) \0 z, x6 Q5 I4 o
[statements]
8 [! }2 B: k4 D' D5 m: nNext Q2 z+ d9 ~( M. O/ [2 G
由loop 计数器指定的次数重复执行statements语句群。
' v% `. U4 m' N9 gFor Each . . . Next * x9 t& t+ ?1 D2 y4 _9 |& z
For Each element In group
! J3 m7 f( c0 \9 K% R1 G[statements]
8 B: T- r T2 U7 K- S* \; Z[Exit For] 6 ?+ w, Y) @& _; ^( X# x+ {: E
[statements] 5 i% W: ^" G3 B0 h& {
Next [element]
/ a2 J) q2 Y1 [/ w对于每一个在数组或集合中的元素,重复执行statements语句群。 / ]8 T1 k s" | K
Function
5 Y4 ]& F/ |4 n( {[Public | Private] Function name [(arglist)] 3 o' Z9 K" k; M
[statements]
: |7 O2 ~/ ~/ x* I* U, l" K[name=expression] ) C6 \% R3 D/ I# ?
[Exit Function]
% Y) A2 A1 ?1 h, `! T[statements]
. r9 |' d" S" G) w! ^[name=expression]
9 @& L {, u' C- Q8 ^End Function
, s+ z: L! r& v$ G定义一个函数,指明函数名,参数及代码。
7 o% r- R9 n/ T' ?: sIf . . . Then . . . Else 4 K8 s4 ^% N7 D
语法1:
- \6 f9 _" @8 B* W8 s: ?5 Z OIf condition Then statements [Else elsestatements] + R9 k4 f/ u' G
语法2: + \* D/ F% W! T! Y E5 r7 X; Z M+ t+ d
If condition Then
9 N. z: N7 Z% D2 h. l9 Mstatements : {) c& F6 f' b" r( A% C
[ElseIf condition-n Then 2 u; G- o& |+ m7 C7 _0 j T
[elseifstatements]] . . . 0 A/ _0 s6 P, t r, c$ G7 J
[Else / a& \. U, P m/ z
[elsestatements]]
1 E& H, b O' g, A+ ?; SEnd If , g" T, N2 T" A* l! Y/ s% }
两种格式都条件执行一系列语句。 : `* D- [% c' D9 j, C+ i
On Error ; Y5 \; ]9 {$ B- r
On Error Resume Next
) x' E# r' o& r( [/ f; D; F: n- U当一个错误发生时,这条语句就执行紧靠发生错误语句后面的语句,或者执行紧靠调用进程后面的语句。 1 w, F8 S1 D2 k: P+ ]% v
Option Explicit ( h! X9 I( y' d4 y! j
Option Explicit 6 B: ~! A+ F' Y
在使用变量之前强制明确定义该变量,可以用Dim,Private,Public或 ReDim语句定义变量。
5 ^) [# [3 R1 pPrivate # N+ D8 v' | H' S; e9 A
Private varname[([下标])][, varname[([下标])] . . .
8 k( m, e9 l, O创建私有变量并且分配存储空间。(私有变量只能在定义该变量的脚本中可用)
, k6 y, c: Q8 k- L5 q' @$ J; W: pPublic - b4 l, j9 x* ^: w; f
Public varname[([下标])][, varname[([下标])] . . . 2 b* {$ z$ p& G: ~9 ~6 ?0 X# d
创建公有变量并且分配存储空间。(公有变量在程序的任何地方均可使用)
8 ?- [" N a2 x: `/ _0 G' i% iRandomize
3 C# `' R9 ?8 a6 `0 Z+ r7 FRandomize [number] / B; U& u5 B% I" @) F# t7 j
给Rnd函数的随机数发生器一个新种子值。
0 ?% l" _) g6 z! V; g9 F, kReDim % u; q* x) W/ V* X
ReDim [Preserve] varname(subscripts)[, varname(subscripts)] . . . 4 u& V) m% g. ^9 h' n1 c1 q7 D0 I8 U
修改维的下标,大小;或重置动态数组的大小。Preserve 保护已存数组的数据。
- N' U$ r, w; E. i5 E" ]1 A/ iRem
8 ^( [( g4 Y" l语法1: & B. O% t6 a% ^( f9 @7 z# q
Rem comment 7 x" A) b, a7 t3 a
语法2:
7 A0 \- a% e2 l# x‘comment
t M& j# O4 Q' O) r; T1 p这两种语句形式都能使注释的句子不被处理。如果Rem和其它语句在同一行上,Rem 语句必须在后且二者之间必须用冒号隔开。
5 S0 _+ }. ^ e* E' M8 Z& Y2 [Select Case
6 W" i8 E1 e* B8 b7 a1 l! Q) C4 ZSelect Case testexpression " C6 i7 ~8 ~0 a" }9 _8 u7 u$ g
[Case expressionlist-n 3 t4 n$ M! o3 q! Z7 V
[statements-n]] . . .
; K' l4 k$ p2 y) U[Case Else expressionlist-n 9 y5 [2 n V m0 `0 o+ _/ t
[elsestatements-n]] ! J F4 a% l- S- ^
End Select 5 v) X% V5 Q7 _; D6 [
如果某一个expressionlist 和testexpression 匹配,则执行和expressionlist对应的语句;如果没有一个expressionlist 和testexpression 相匹配,则执行和Case Else 相对应的语句。
/ c2 }& d/ Z9 X9 K7 I# xSet
1 W( _8 H ~' L! a- {$ W1 p5 TSet obectvar= {objectexpression | Nothing}
( g( X$ {2 J' X赋予一个变量或一个性质对象引用。当赋予的值为Nothing 时,使obectva 和任何以前指明的对象解除关系。 3 X- h6 C1 ]( Y) s$ { ]
Sub
# P. t; h! U: }. _) O[Public | Private] Sub name [(arglist)] + k- G- i$ q- e7 J. i+ L
[statements] : t9 P8 l) T( x# t. I
[Exit Sub]
/ u' E( j. p0 k, {; k3 F: c[statements]
! T2 \1 p3 W' SEnd Sub ! b- v% M: j1 O
定义一个子程序,指明名称,参数及代码。
1 P+ ^/ Z* N. m2 T$ y; }# H6 rWhile . . . Wend
' V' h. D, g6 T! a. |5 xWhile condition
6 w$ M. ], F l5 ~1 i[statements] / `, w1 T: {6 H1 b7 C
Wend 2 }; T9 g6 M# E. i! x) _
不停地连续执行语句statements 直到条件condition为True。 0 a( q* a' \& g. M* W& p
; f& K; T: _8 M- B
|