VB变量类型及控制语句(基础篇)

BAT/VBS/VBA 专栏收录该内容
7 篇文章 2 订阅

第一节:数据类型及常用控制语句

1、运算符:

(1)赋值运算符 =

(2)数学运算符: &、+ (字符连接符)、+(加)、-(减)、*(乘)、/(除)、Mod(取余)、\(整除)、-(负号)、^(指数)

(3)逻辑运算符:Not(非)、And(与)、Or(或)、Xor(异或)、Eqv(相等)、Imp(隐含)

(4)关系运算符: = (相等)、<>(不等)、>(大于)、<(小于)、>=(不小于)、<=(不大于)、Like、Is

(5)位运算符 Not(逻辑非)、And(逻辑与)、Or(逻辑或)、Xor(逻辑异或)、Eqv(逻辑等)、Imp(隐含)

2、数据类型:

         VBA共有12种数据类型,具体见下表,此外用户还可以根据以下类型用Type自定义数据类型。

数据类型

类型标识符

字节

字符串型 String

$

字符长度(0-65400)

字节型 Byte

1

布尔型 Boolean

2

整数型 Integer

%

2

长整数型 Long

&

4

单精度型 Single

!

4

双精度型 Double

#

8

日期型 Date

8 公元100/1/1-9999/12/31

货币型 Currency

@

8

小数点型 Decimal

14

变体型 Variant

以上任意类型,可变

对象型 Object

4

3、变量与常量

(1)VBA允许使用未定义的变量,默认是变体变量Variant。

(2)在模块通用说明部份,加入 Option Explicit 语句可以强迫用户进行变量定义。

(3)变量定义语句及变量作用域

Dim         变量 as 类型

'定义为局部变量

如 Dim        xyz  as  integer

Private     变量 as 类型

'定义为私有变量

如 Private    xyz  as  byte

Public      变量 as 类型

'定义为公有变量

如 Public     xyz  as  single

Global      变量 as 类型

'定义为全局变量

如 Globlal    xyz  as  date

Static      变量 as 类型

'定义为静态变量

如 Static     xyz  as  double

    一般变量作用域的原则是,那部份定义就在那部份起作用,模块中定义则在该模块那作用。

(4)常量为变量的一种特例,用Const定义,且定义时赋值,程序中不能改变值,作用域也如同变量作用域。

     如下定义:Const Pi=3.1415926 as single

4、数组

      在内存中表现为一个连续的内存块,必须用Global或Dim语句来定义。定义规则如下:Dim 数组名([lower to ]upper [, [lower to ]upper, ….]) as type ;Lower缺省值为0。二维数组是按行列排列,如XYZ(行,列)。除了以上固定数组外,VBA还有一种功能强大的动态数组,定义时无大小维数声明;在程序中再利用Redim语句来重新改变数组大小,原来数组内容可以通过加preserve关键字来保留。如下例:Dim array1() as double : Redim array1(5) : array1(3)=250 : Redim preserve array1(5,10)

5、注释

       注释语句是用来说明程序中某些语句的功能和作用;VBA中有两种方法标识为注释语句。单引号 ’ ;如:’定义全局变量;可以位于别的语句之尾,也可单独一行Rem ;如:Rem 定义全局变量;只能单独一行。

6、书写规范

(1)VBA不区分标识符的字母大小写,一律认为是小写字母;

(2)一行可以书写多条语句,各语句之间以冒号 : 分开;

(3)一条语句可以多行书写,以空格加下划线 _ 来标识下行为续行;

(4)标识符最好能简洁明了,不造成歧义。

 

第二节:常用控制语句及举例

1、判断语句 If … Then … Else  Endif语句

If a>60 Then
    k=1
Elself a>70 Then
    k=2
Elself a>80 Then
    k=3
Elself a>90 Then
    k=4
Endif

2、Select Case语句

      Select Case Time
            Case 1 To 11
                  msg = "上午"
            Case 12
                  msg = "中午"
            Case 13 To 16
                  msg = "下午"
            Case 17 To 20
                  msg = "晚上"
            Case 23, 24
                  msg = "午夜"
            Case Else
                  msg = "不明"
      End Select

      MsgBox "现在是:" & msg

3、循环语句

(1)For … Next循环

For cnt = 1 To 10 Step 1             ' 建立 10 次循环

    For Chars = 0 To 9                    ' 建立 10 次循环

        MyString = MyString & Chars            ' 将数字添加到字符串中

    Next Chars                            ' Increment counter

    MyString = MyString & " "           ' 添加一个空格

Next cnt
[Exit For]

(2)For Each…Next语句

     主要功能是对一个数组或集合对象进行,让所有元素重复执行一次语句

Sub 大于90的单元格涂红色()

    Dim rng  As Range

    For Each rng In Sheet5.Range("b3:b12")
      Select Case rng
      Case Is >= 90
      rng.Interior.ColorIndex = 3
      End Select
    Next

End Sub

其他常用循环

1) Do While循环
---------------------------------------------------------
Do [While 条件]
  [指令]
  [Exit Do]
  [指令]
Loop

---------------------------------------------------------
Do
  [指令]
  [Exit Do]
  [指令]
Loop [While 条件]
---------------------------------------------------------
2) Do Until循环
---------------------------------------------------------
Do [Until 条件]
  [指令]
  [Exit Do]
  [指令]
Loop
---------------------------------------------------------
Do
  [指令]
  [Exit Do]
  [指令]
Loop [Until 条件]

---------------------------------------------------------

3) While … Wend循环

While <条件>
  [指令]
Wend

 

  • 5
    点赞
  • 0
    评论
  • 15
    收藏
  • 打赏
    打赏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:深蓝海洋 设计师:CSDN官方博客 返回首页

打赏作者

N阶魔方

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值