|
来源:http://blog.csdn.net/aspstu/
# Z3 [2 U; C# v6 r4 p% T' W. r语句; s# t$ p5 V1 p
Call ! B# \) _3 f% r
[call] name [argumentlist] " P3 C7 _; m0 @) c2 s
把控制转移到函数或子程序。当调用函数或子程序时,Call是可写可不写的。但是如果你用了Call,那么argumentlist必须用括号括起来。
3 y- y' L2 E, _3 d- E3 mConst $ ]6 {: V, c) y" J2 X9 t
[Public | Private] Const constantname=expression 1 V, ?4 m' v3 a6 ?: g4 q
用于申明常数。你可以在一行里申明多个常数,此时你必须用逗号把常数赋值语句隔开。
7 S+ B" l( F* v) ]# ~# {Dim 9 @3 A4 A0 J1 |- B: Y4 ` k
Dim varname[ ( [subscripts])][, varname [( [subscripts])]... 7 f/ n2 L" N1 L! r
创建一个新变量并且分配存储空间。 ) t1 k$ s" j1 h6 H+ w) G5 }! F1 L
DO . . . LOOP
" m( n" E; P0 B, {语法 1:
3 Z: D+ _" Z% ^. L4 ~Do [{While | Until } condition ] 8 W- |2 x( n+ \6 b; L2 j3 n
[statements] , `& o$ ^( L: I* c: j1 ?# d1 a" O
[Exit Do] - \/ L3 N5 M/ T; [
[statements] M; h3 y" W# i A6 N1 j) {$ v
LOOP
' Q; ]$ p7 G/ q! _, K+ p" X) O5 Y3 j语法 2: 0 w2 \! l u# N- a
Do + Q7 {' n% N" {3 I r
[statements]
! w4 R" o( V. l$ `# q [; u% U[Exit Do] + ]# S L/ K5 K) ^' p
[statements]
; r. z: o- \; L( u2 JLOOP [{While | Until } condition ]
1 m5 `# f5 |4 s8 A当条件condition为真时或直到条件condition为真时,两种形式都重复执行语句。 ! s4 U$ u8 M8 V, X& V; ^
Erase
" @# o' ?! o, yErase array
( w4 r; J0 [9 O清理数组,对于固定长度的数组,重新初始化元素;对于动态数组,重置存储空间。
- _' j7 G9 M9 |) d- k' c3 ~; ~Exit
* T+ I; S; v* @- j7 F! F0 n* tExit Do $ B2 O# O; x( s: ^
退出一个 DO . . . LOOP 循环。
V# a5 u; _3 x+ j: D) D. AExit For , O9 G, u6 j, d0 F9 P$ n1 N
退出一个 For . . . Next 循环或For Each . . . Next循环。 ) K Z5 a+ l9 d) K0 D9 v# |! u
Exit Function
' S a) e* F: |, V7 z' C退出一个 函数。
; Q. C* z6 L' e6 O3 ~" RExit Sub . J8 k9 }# T* x
退出一个子程序。 4 M' B u: x1 L. K
For . . . Next . T, \- b x1 t+ C+ Z" U
For counter = start To End [Step step] , |% o$ e7 p7 Z$ }
[statements]
2 Y7 n$ h5 M1 h) p- M9 Y7 F+ B[Exit For] ! U4 [/ w2 r9 l8 n
[statements] 9 c' Q, X" s0 C5 |
Next : l5 F' l ~% k) c
由loop 计数器指定的次数重复执行statements语句群。 ; Y+ A- `9 m! G* j
For Each . . . Next . W2 B0 y4 O: ^; [7 N3 C" }
For Each element In group
, C |$ G1 H$ v N[statements] 2 E S3 n* Q) r" f6 _; u5 E6 O* U
[Exit For]
, ?* g+ s/ h8 k. s; P% H[statements]
) U( t6 E9 C K& E. P1 rNext [element] 8 Z# d& F$ h, x( `. _' j+ m9 R
对于每一个在数组或集合中的元素,重复执行statements语句群。
! m6 ^1 o6 c1 C5 F6 xFunction
' l+ d9 K/ R B[Public | Private] Function name [(arglist)] $ s# P- A' ~1 P. h% E
[statements] ( W/ M6 \9 r+ h3 Q2 X- F7 q+ S
[name=expression]
+ m7 b: h3 W7 B! s( m" U9 r[Exit Function]
' y. n# I) @" ]& `[statements] 2 K) T' ^/ j% B- h: g( {5 `
[name=expression]
* V) c; ?4 q; e0 b/ hEnd Function - @( r: n0 p9 j. p5 c
定义一个函数,指明函数名,参数及代码。
; @) U3 @0 k, p6 LIf . . . Then . . . Else 8 D. H$ `; c( D! w8 W
语法1:
) p7 w) W: }3 Z" C# gIf condition Then statements [Else elsestatements]
+ N4 d$ h: z: M2 i& [语法2: . v: R' \) Q) v& s& E3 e, X2 ^; S
If condition Then
- B8 @6 @! J& r) E6 M" Q4 Z3 Wstatements
" x' l; A4 P3 B: H/ u& s[ElseIf condition-n Then
# x7 Z+ i; {, x8 L' K[elseifstatements]] . . . : {4 q' }/ e: q; K
[Else
0 D3 i: J3 y/ {' O) W% Q[elsestatements]]
p, r2 }) @5 S6 j% p- q4 w( rEnd If ; T% ~8 `6 D; T4 U5 d% W& A
两种格式都条件执行一系列语句。 1 k- \5 s! K0 t5 M1 m; } V
On Error ( Q4 P# j( X# r
On Error Resume Next
j, e/ e R# M, K: A当一个错误发生时,这条语句就执行紧靠发生错误语句后面的语句,或者执行紧靠调用进程后面的语句。
7 K7 c! z: p$ d0 f% K2 L" U- W1 }) ZOption Explicit 2 E/ w: W2 o2 \" m ?3 F
Option Explicit ! A9 l3 J! L. p5 Y
在使用变量之前强制明确定义该变量,可以用Dim,Private,Public或 ReDim语句定义变量。
+ w3 q2 F0 R. E8 yPrivate 7 |: Q+ ^: i& |6 q Y7 K( J
Private varname[([下标])][, varname[([下标])] . . . & L( F( }, N3 B) O1 Y
创建私有变量并且分配存储空间。(私有变量只能在定义该变量的脚本中可用)
4 R8 T. i w! c$ ePublic $ R6 ]2 z- h! ]
Public varname[([下标])][, varname[([下标])] . . .
, _7 }) \5 o7 Q7 y. n% {2 T创建公有变量并且分配存储空间。(公有变量在程序的任何地方均可使用)
! H2 `7 H7 v5 K, d" K9 I" uRandomize
* g3 t! \, U* X! @/ E6 E* zRandomize [number] / _" l B {5 r3 A* Y8 M8 E7 D
给Rnd函数的随机数发生器一个新种子值。 # [0 R2 q! a' F; m+ D
ReDim f5 M1 t) E$ j: ~# E
ReDim [Preserve] varname(subscripts)[, varname(subscripts)] . . . 0 q: O6 N, D: [4 `. y* f; }0 e
修改维的下标,大小;或重置动态数组的大小。Preserve 保护已存数组的数据。 5 Z, y0 T/ T1 a' }2 J
Rem 4 V0 E1 c8 P! N+ ~1 g$ C5 J5 ~# G
语法1:
5 c- T( m4 h4 I& _Rem comment ; L( L# M$ s+ n0 w4 }% y
语法2:
. @) ~- f0 r/ j9 t‘comment
8 C' p+ p. O2 h* ^% e% x; d* n4 p这两种语句形式都能使注释的句子不被处理。如果Rem和其它语句在同一行上,Rem 语句必须在后且二者之间必须用冒号隔开。 5 A5 w) r: s) R& a( z8 K5 a1 J
Select Case 2 b2 h0 e& g( [- ^: f9 v
Select Case testexpression
% O9 {2 n: o4 |0 {2 X[Case expressionlist-n
" i- _% x. V! o' l6 `7 {' h2 X8 f[statements-n]] . . . , B2 t9 n% i- d
[Case Else expressionlist-n
% G9 H4 @. t$ j/ |8 \[elsestatements-n]] " Y# U5 O `7 @/ M1 Y
End Select
5 T/ m2 G& @0 `& _2 x5 y) p如果某一个expressionlist 和testexpression 匹配,则执行和expressionlist对应的语句;如果没有一个expressionlist 和testexpression 相匹配,则执行和Case Else 相对应的语句。
! C* Q# s: r, lSet / ~4 Q c# p6 K$ Z( |
Set obectvar= {objectexpression | Nothing} 5 C: ^7 R* [0 s9 ?) _3 }% [$ G; l4 g7 o
赋予一个变量或一个性质对象引用。当赋予的值为Nothing 时,使obectva 和任何以前指明的对象解除关系。 ) K+ n. O6 g! G2 D7 O' F4 w
Sub
! ^' r, D" L3 o& ?2 f% r' J[Public | Private] Sub name [(arglist)]
9 N- ` W+ h" Y% D: {5 B5 {[statements] $ l" j- U' m* L; b0 ~4 B5 d" Q
[Exit Sub] ) D! y) E0 M I+ |: R% m, g& V% U
[statements] & l V2 }# z8 o
End Sub ' n& G* \/ B+ W& O' Q( R4 d0 C1 W
定义一个子程序,指明名称,参数及代码。
- Z9 R4 p! Q) Q- ^0 vWhile . . . Wend
q" E C% |( k4 HWhile condition
' z4 g- }) l# J$ X[statements]
' M4 Q7 ^: k- C2 e4 v0 ^Wend
) X9 j3 F7 \# J4 ^" z, i: D' t/ g不停地连续执行语句statements 直到条件condition为True。
/ d2 x7 J+ D# M9 e( V) o8 j* D8 |
" ]7 ^2 |: j0 _! b- J |