Excel VBS代码主要语法

298 阅读4分钟
一、子程序,无返回值:
1、释义如下:
(1)是一系列的语句,被封装在 SubEnd Sub 语句内。
(2)可执行某些操作,但不会返回值。
(3)可带有通过程序调用来向子程序传递参数。
(4)如果没有,必须带有空的圆括号
2、代码示例:
Sub mysub(argument1,argument2)
 some statements
End Sub
二、函数程序,可以有返回值:
1、释义如下:
(1)是一系列的语句,被封装在 FunctionEnd Function 语句内。
(2)可执行某些操作并返回值。
(3)可带有通过程序调用来向其传递参数。
(4)如果没有,必须带有空的圆括号
(5)通过向函数程序名赋值的方式,可使其返回值。
2、代码示例:
Function myfunction(argument1,argument2)
 some statements
 myfunction=some value
End Function
三、变量定义
1、可以使用 DimPublicPrivate 语句来声明变量,为了避免不适用声明语句而造成命名错误问题,可在程序顶部加上限制语句,如下:
option explicit
dim name
name=some value
2、声明数组变量,如下声明一个包含三个元素的数组,并给元素赋值或取值:
dim names(2)
赋值:
names(0)="George"
names(1)="John"
names(2)="Thomas"
取值:
father=names(0)
四、条件语句,三种:
1If....Then.....Else
在下面的情况中,您可以使用 If...Then...Else 语句:

在条件为 true 时,执行某段代码
选择两段代码之一来执行时
如果需要在条件为 true 时只执行一行语句,可以把代码写为一行:

if i=10 Then msgbox "Hello"
在上面的代码中,没有 .else.. 语句。我们仅仅让代码在条件为 true 时执行一项操作(当 i 为 10 时)。

假如我们需要在条件为 true 时执行不止一条语句,那么就必须在一行写一条语句,然后使用关键词 "End If" 来结束这个语句:

if i=10 Then
   msgbox "Hello"
   i = i+1
end If
在上面的代码中,同样没有 .else.. 语句。我们仅仅让代码在条件为 true 时执行了多项操作。

假如我们希望在条件为 true 时执行某条语句,并当条件不为 true 时执行另一条语句,就必须添加关键词 "Else"if i=10 then
   msgbox "Hello"
else
   msgbox "Goodbye"
end If
当条件为 true 时会执行第一段代码,当条件不成立时执行第二段代码(当 i 不等于 10 时)
2If....Then.....Elseif
假如你希望选择多套代码之一来执行,可以使用if...then...elseif语句:

if payment="Cash" then
   msgbox "You are going to pay cash!"
 elseif payment="Visa" then
   msgbox "You are going to pay with visa."
 elseif payment="AmEx" then
   msgbox "You are going to pay with American Express."
 else
   msgbox "Unknown method of payment."
end If
3Select Case
假如你希望选择多套代码之一来执行,可以使用 SELECT 语句:

select case payment
 case "Cash"
   msgbox "You are going to pay cash"
 case "Visa"
   msgbox "You are going to pay with visa"
 case "AmEx"
   msgbox "You are going to pay with American Express"
 case Else
   msgbox "Unknown method of payment"
end select
五、循环语句,四种
1、r...Next 语句
运行一段语句指定的次数
2、r Each...Next 语句
针对集合中的每个项目或者数组中的每个元素来运行某段语句。
3、...Loop 语句
运行循环,当条件为 true 或者直到条件为 true 时。
4、ile...Wend 语句
不要使用这个语句 - 请使用 Do...Loop 语句代替它。

释义:
For...Next 循环
如果您已经确定需要重复执行代码的次数,那么您可以使用 For...Next 语句来运行这段代码。

我们可以使用一个计数器变量,这个变量会随着每次循环递增或递减,例如这样:

For i=1 to 10
  some code
Next
For 语句规定计数变量以及它的开始值和结束值。

Next 语句会以 1 作为步进值来递增变量i。

Step 关键词
通过使用 Step 关键词,我们可以规定计数变量递增或递减的步进值。

在下面的例子中,计数变量i每次循环的递增步进值为 2For i=2 To 10 Step 2
  some code
Next
如果要递减计数变量,就必须负的步进值。并且需要规定小于开始值的结束值。

在下面的例子中,计数变量i每次循环的递减步进值为 2For i=10 To 2 Step -2
  some code
Next
退出 For...Next
如需退出 For...Next 语句,可以使用 Exit 关键词。

六、取单元格
1、Range("A1").Value
2、cells(1,1) 或cells(1,"A")
3、[A1].Value