VBA 语言基础

第一节 标识符

一.定义

标识符是一种标识变量、常量、过程、函数、类等语言构成单位的符号,利用它可以完成对变量、常量、过程、函数、类等的引用。

二.命名规则

1) 字母打头,由字母、数字和下划线组成,如 A987b_23Abc

2) 字符长度小于40,(Excel2002 以上中文版等,可以用汉字且长度可达254 个字符)

3) 不能与VB 保留字重名,如public, private, dim, goto, next, with, integer, single等

第二节 运算符

定义:运算符是代表VB 某种运算功能的符号。

1)赋值运算符 =

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

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

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

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

第三节 数据类型

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

数据类型 类型        标识符 字节

字符串型 String     $        字符长度(0-65400)

字节型    Byte       无       1

布尔型    Boolean  无       2

整数型    Integer   %       2

长整数型 Long       &       4

单精度型 Single      !       4

双精度型 Double    #       8

日期型    Date       无       8 公元100/1/1-99/12/31

货币型    Currency @       8

小数点型 Decimal   无       14

变体型    Variant   无       以上任意类型,可变

对象型    Object    无       4

第四节 变量与常量

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

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

第五节 数组

数组是包含相同数据类型的一组变量的集合,对数组中的单个变量引用通过数组索引下标进行。在内存中表现为一个连续的内存块,必须用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)

第六节 注释和赋值语句

1)注释语句是用来说明程序中某些语句的功能和作用;VBA 中有两种方法标识为注释语句。

VBA 语言基础的更多相关文章

  1. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(下)

    索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 五.透视.逆透视及分组 5.1 透视 所谓透视( ...

  2. 《MSSQL2008技术内幕:T-SQL语言基础》读书笔记(上)

    索引: 一.SQL Server的体系结构 二.查询 三.表表达式 四.集合运算 五.透视.逆透视及分组 六.数据修改 七.事务和并发 八.可编程对象 一.SQL Server体系结构 1.1 数据库 ...

  3. C#语言基础

    第一部分 了解C# C#是微软公司在2000年7月发布的一种全新且简单.安全.面向对象的程序设计语言,是专门为.NET的应用而开发的.体现了当今最新的程序设计技术的功能和精华..NET框架为C#提供了 ...

  4. C语言基础回顾

    第一章 C语言基础 1.  C语言编译过程 预处理:宏替换.条件编译.头文件包含.特殊符号 编译.优化:翻译并优化成等价的中间代码表示或汇编代码 汇编:生成目标文件,及与源程序等效的目标的机器语言代码 ...

  5. 黑马程序员_ C语言基础(二)

    ------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- 概览 今天基础知识分为以下几点内容(注意:循环.条件语句在此不再赘述):   1.Hello W ...

  6. C#语言基础— 输入与输出

    C#语言基础— 输入与输出 1.1函数的四要素:名称.输入.输出.加工 1.2主函数:输出语句.输入语句: Static viod Main(string[] stgs)//下划线部分可以自己指定 { ...

  7. 【GoLang】GO语言系列--002.GO语言基础

    002.GO语言基础 1 参考资料 1.1 http://www.cnblogs.com/vimsk/archive/2012/11/03/2736179.html 1.2 https://githu ...

  8. R语言基础:数组&列表&向量&矩阵&因子&数据框

    R语言基础:数组和列表 数组(array) 一维数据是向量,二维数据是矩阵,数组是向量和矩阵的直接推广,是由三维或三维以上的数据构成的. 数组函数是array(),语法是:array(dadta, d ...

  9. OC语言基础知识

    OC语言基础知识 一.面向对象 OC语言是面向对象的,c语言是面向过程的,面向对象和面向过程只是解决问题的两种思考方式,面向过程关注的是解决问题涉及的步骤,面向对象关注的是设计能够实现解决问题所需功能 ...

随机推荐

  1. Linux 运维工程师一定要知道的六类好习惯和23个教训

    一.线上操作规范 1.测试使用当初学习Linux的使用,从基础到服务到集群,都是在虚拟机做的,虽然老师告诉我们跟真机没有什么差别,可是对真实环境的渴望日渐上升,不过虚拟机的各种快照却让我们养成了各种手 ...

  2. 【gp数据库】查询系统表看模式下所有表的分布键信息

    Greenplum是关系型的分布式数据库,需要存储的数据库在进入数据库时,将先进行数据分布的处理工作,讲一个表的数据平均分不到每个节点上,并为每个表指定一个分发列(distribute Column) ...

  3. Linux 系统的磁盘设备_【all】

    磁盘 ->RAID ->分区 ->格式化 ->挂载 基本的框架 a.硬盘的外部以及内部硬件结构,工作原理和读写原理b.RAID的划分(一块盘划分为一块或者多块的小虚拟磁盘,可以 ...

  4. 使用MVC Razor生成格式良好的HTML Body作为邮件内容

    PS: 实例化邮件类MailMessage有一个属性IsBodyHtml指示邮件正文是否是HTML格式. 我想利用Razor View的Model Binding / Rendering功能为我从AS ...

  5. php函数substr_replace中文乱码的替代解决方法

    $str = "中华人民共和国"; $len = mb_strlen($str,'utf-8'); if($len>=6){ $str1 = mb_substr($str,0 ...

  6. Alpha 冲刺报告(9/10)

    Alpha 冲刺报告(9/10) 队名:洛基小队 峻雄(组长) 已完成:角色属性功能的测试版 明日计划:准备α版本的ppt 剩余任务:尽量完成角色属性功能 困难:缺乏编程经验,很难自己独立完成编写,只 ...

  7. 我在德国做SAP CRM One Order redesign工作的心得

    时间过得很快,今天是我到德国工作的第四周,刚好一个月.Prototype的框架已经搭起来了,现在Order能够在新的框架下正常读写,能跑一些简单的scenario,这些scenario对于end us ...

  8. Java虚拟机18:Java对象大小、对象内存布局及锁状态变化

    一个对象占多少字节? 关于对象的大小,对于C/C++来说,都是有sizeof函数可以直接获取的,但是Java似乎没有这样的方法.不过还好,在JDK1.5之后引入了Instrumentation类,这个 ...

  9. UVa 1642 - Magical GCD(数论)

    链接: https://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  10. Java并发编程--5.信号量和障碍器

    Semaphore信号量 简介 它本质上是一个共享锁,限制访问公共资源的线程数目,它也被称为计数信号量acquire()许可一个线程, Semaphore – 1; 没有可用的许可时,Semaphor ...