VBA语法-基础语法

VBA语法

1.    基础语法

2.    控制结构

3.    数组

4.    过程

5.    模块

6.    处理字符串和日期

基础语法

4.2所有代码都在宏内如下:

Sub 宏名称()
'说明
…
End sub


单引号为注释

字符: a-z,A-Z,0-9,中文版excel还可以用中文

关键字:vbe中不区分大小写,输入完enter后,vbe自动将关键字转换为首字母大写

标识符:过程、常熟、变量、对象的名称

       首字符为字母或下划线;最长255字符;见名知意

4.3数据类型:

1.    Ineger   

2个字节 %声明字符

2.    Long   

 4个字节  &

3.    Single  

4个字节  !

4.    Double

 8个字节  #

5.    Currency

 8个字节 @

整型的数值形式,除以10000,给出一个定点数,左边15位,右边4位,single和double 浮点数比货币型有效范围大得多,有可能有误差,因此货币型用更多的字节保存数据,减少计算误差。

6.    Byte    

1个字节 0-255之间整数

7.    String   

双引号内

 "欢迎使用VBA"   ""      '空字符串
 Dim str1 as string    '变长字符2^31个字符
 Dim str2 as string*10 '定长2^16个支付,约64K


8.    Boolean

只有两个值True和False,当其他类型转换为布尔类型,0转为false,其他为true;布尔转换其他类型时,false为0 ,true为-1

9.    Date

支持复杂日期操作和运算,日期范围100年1月1日—9999年12月31日;时间从0:00:00 --- 23:59:59,

任何可辨认的文本日期都可赋值给date变量,以##括起来。如

#january1/1993#
#1 jan 93 #


日期型变量会根据计算机中短日期格式显示,时间根据计算机时间格式显示(12或24小时制)

其他数值类型转为日期型,小数点左边表示日期,右边表示时间;午夜为0,中午为0.5,负整数表示1899年12月30日之前

10.  Object

4个字节存储地址,必须用set语句赋值,结束后,赋值为nothing

Dim MyObject as object
Set myobject = worksheets(“sheet1”)
Set myobject = nothing


11.  Variant

可以为除定长string外所有类型,可用vartype或typename函数决定如何处理变体型数据

12.  自定义数据类型

Type
…
End type


必须放在模块或类模块声明部分

Type product
        Productname asstring
        库存量 as integer
        Price as currency
        Order as integer
End type
Sub test()
        Dim p1 asproduct
        With worksheets(“商品“)
               P1.productname= .cells(3,2)
               P1.库存量 = .cells(3,6)
               P1.price= .cells(3,7)
               P1.order= cells(3,8)
        End with
End sub


13.  枚举类型

默认情况下枚举第一个常数为0,后边比前边大1,也可直接= 赋值第一个为1

Public enum grade
        小学
        一年级
        二年级
End enum


4.4常数(直接常数,符号常数,系统常数)

日期自动按月/日/年表达

Const MAXCOL =255
Const MyInt asInteger = 5
Const BOOKNAME =“excel 从入门到精通“
Const BOOK = “microsoft”+ BOOKNAME


系统常数   控制对象的某些属性,用名称比用数字直观,有vb和应用程序的常数列表,常用大小写混合方式,前缀表示对象库名

如msgbox 用vbOKOnly比用0直观

XlWindowType xlWorkbook

可以在帮助中搜索常数查看,或对象浏览器

4.5变量

       dim 变量名[as 类型]

       optionexplicit

       作用域

       过程级dim声明

       模块级在开始部分用dim或private声明

       全局级别整个程序(各模块,过程)在开始部分public 声明

       生命周期

       一般生命周期与作用域相同,static静态变量,整个程序有效,但只在定义过程能访问,超过该过程不能访问

      

 Sub过程1()
     Dims1 as string
     S1= “hello world”
     Msgboxs1
Endsub
Sub过程2()
   Msgboxs1
Endsub

过程2 无显示

4.6运算符


字符连接运算

+连接两个都是字符

&强制为字符串连接

Msgbox “局部变量的值” &Il & vbNewLine & ”静态变量的值” & i2,vbOkOnly


猜你喜欢

转载自blog.csdn.net/u012712186/article/details/53291777