VBA基础 - 数据类型
概要
学习一种新语言, 数据类型和关键字是第一步.
数据类型
常用的数据类型如下:
| 类型 | 存储空间 | 范围 |
|---|---|---|
| Boolean | 2 bytes | True 或者 False |
| Byte | 1 byte | 0 ~ 255 |
| Integer | 2 bytes | -32768 ~ 32768 |
| Long | 4 bytes | -2147483648 ~ 2147483647 |
| LongLong | 8 bytes | -2147483648 ~ 2147483647 |
| String | 10 bytes + string length | 0 ~ 20 亿个字符 |
| Object | 4 bytes | 可以赋值给任何对象引用 |
| Single | 4 bytes | -3.402823E38 ~ -1.401298E-45 (对负值) |
| 1.401298E-45 ~ 3.402823E38 (对正值) | ||
| Double | 8 bytes | -1.79769313486231E308 ~ -4.94065645841247E-324 (对负值) |
| 4.94065645841247E-324 ~ 1.79769313486231E308 (对负值) | ||
| Date | 8 bytes | 100 年 1 月 1 日 ~ 9999 年 12 月 31 日 0:00:00 ~ 23:59:59 |
| Variant | 16 bytes | 任意值, 性能较低 |
VBA 中提供了一系列 函数用于类型之间的转换
运算符
运算符是和数据类型同样, 是使用最多的部分.
| 类型 | 运算符 | 说明 | 示例 |
|---|---|---|---|
| 算术运算符 | * | 乘法 | MyValue = 2 * 2 ' Returns 4. |
| ^ | 乘方 | MyValue = 2 ^ 2 ' Returns 4. | |
| / | 除法运算, 返回浮点型结果 | MyValue = 10 / 4 ' Returns 2.5. | |
| \ | 除法运算, 返回整数结果 | MyValue = 100 \ 3 ' Returns 33. | |
| Mod | 求余数 | MyResult = 10 Mod 3 ' Returns 1. | |
| + | 加法 | MyNumber = 2 + 2 ' Returns 4. | |
| - | 减法 | MyResult = 4 - 2 ' Returns 2. | |
| 比较运算符 | = | 判断是否相等 | Check = (4 = 4) ' Returns True |
| Is | 判断 2 个对象的引用是否相同 | Set ThisObject = MyObject | |
| MyCheck = ThisObject Is ThisObject ' Returns True. | |||
| Like | 比较字符串时, 可以使用通配符, 简化版的正则 | MyCheck = "aBBBa" Like "a*a" ' Returns True. | |
| 连接运算符 | & | 连接字符串 | MyStr = "Hello" & " World" ' Returns "Hello World". |
| + | 除了作为加法, 还可以用在字符串上 | Var1 = "34": Var2 = 6; MyNumber = Var1 + Var2 ' Returns 40. | |
| Var1 = "34": Var2 = "6"; MyNumber = Var1 + Var2 ' Returns "346". | |||
| 逻辑运算符 | And | 逻辑与 | |
| Eqv | 逻辑等于 | ||
| Imp | 不太常用 | imp-operator | |
| Not | 逻辑非 | ||
| Or | 逻辑或 | ||
| Xor | 逻辑异或 |
变量
有了数据类型, 就可以定义各种变量, 完成相应的计算. 变量的定义和计算, 和其他编程语言也没有什么区别, 这里主要提下变量的生命周期.
全局变量和局部变量
1 Dim globalX As Integer
2
3 Sub Test()
4 f1
5 globalX = globalX + 1
6 localX = localX + 1
7 f1
8 End Sub
9
10 Function f1()
11 Dim localX As Integer
12
13 Debug.Print "全局变量 " & globalX
14 Debug.Print "局部变量 " & localX
15 End Function
运行 Test, 输出:
全局变量 0
局部变量 0
全局变量 1
局部变量 0
静态变量和动态变量
1 Sub Test()
2 f1
3 f1
4 f1
5 End Sub
6
7 Function f1()
8 Dim dX As Integer
9 Static sX As Integer
10
11 sX = sX + 1
12 dX = dX + 1
13 Debug.Print "静态变量 " & sX
14 Debug.Print "动态变量 " & dX
15 End Function
运行 Test, 输出:
静态变量 1
动态变量 1
静态变量 2
动态变量 1
静态变量 3
动态变量 1
VBA基础 - 数据类型的更多相关文章
- Office·Word高级·VBA基础概念语法
阅文时长 | 5.21分钟 字数统计 | 1823字符 『Office·Word高级·VBA基础概念语法』 编写人 | SCscHero 编写时间 | Monday, June 29, 2020 文章 ...
- [.net 面向对象编程基础] (3) 基础中的基础——数据类型
[.net 面向对象编程基础] (3) 基础中的基础——数据类型 关于数据类型,这是基础中的基础. 基础..基础..基础.基本功必须要扎实. 首先,从使用电脑开始,再到编程,电脑要存储数据,就要按类型 ...
- TypeScript学习指南第一章--基础数据类型(Basic Types)
基础数据类型(Basic Types) 为了搭建应用程序,我们需要使用一些基础数据类型比如:numbers,strings,structures,boolean等等. 在TypeScript中除了Ja ...
- VBA基础——循环语句
VBA基础之循环语句 Sub s1() Dim rg As Range For Each rg In Range("a1:b7,d5:e9") If rg = "&quo ...
- 【Swift】学习笔记(一)——熟知 基础数据类型,编码风格,元组,主张
自从苹果宣布swift之后,我一直想了解,他一直没有能够把它的正式学习,从今天开始,我会用我的博客来驱动swift得知,据我们了解还快. 1.定义变量和常量 var 定义变量,let定义常量. 比如 ...
- 二、Windows基础数据类型
六.Windows Data Types 简介: 6.1.这些数据类型都是C语言数据类型的再次的进行包装. 6.2.因为考虑到如果使用的是C中的基础数据类型可能无法表示,想表示的精准的含义. 6.3. ...
- java基础数据类型包装类
*/ .hljs { display: block; overflow-x: auto; padding: 0.5em; color: #333; background: #f8f8f8; } .hl ...
- java.lang基础数据类型boolean、char、byte、short、int、long、float、double (JDK1.8)
java.lang.Boolean public static int hashCode(boolean value) { return value ? 1231 : 1237; } JDK 1.8新 ...
- Python基础数据类型之列表和元组
一.列表 list 列表是python中的基础数据类型之一,其他语言中也有类似于列表的数据类型,比如js中叫数组,他是以[]括起来,每个元素以逗号隔开,而且他里面可以存放各种数据类型比如: li ...
随机推荐
- 蓝牙Inquriy 过程详解
问题 今天遇到了一个问题,就是自己的耳机产品,手机经常搜不到,从日志里面查看,发现原因是平时手机蓝牙发送的是inquiry mode =2 出问题的时候,inquiry mode =1 由于本设备很多 ...
- centos7之firewalld防火墙的配置与使用
firewalld是centos7开始提供的管理防火墙工具,提供了一个动态管理的防火墙,当然低层仍然调用的是 netfilter . 一.区域(zone)firewalld将网卡对应到不同的区域(zo ...
- wpf button style IsMouseOver
<Style x:Key="workButtonStyle" TargetType="{x:Type Button}"> <Style.Tri ...
- java基础(15):常用API(Object、String、StringBuffer)
1. Java的API及Object类 在以前的学习过程中,我们都在学习对象基本特征.对象的使用以及对象的关系.接下来我们开始使用对象做事情,那么在使用对象做事情之前,我们要学习一些API中提供的常用 ...
- System 类初探
System 类 操作方法 取得当前的系统时间 currentTemiMillis() public static long currenTimeMillis() ; 实例: 统计某些操作的执行时间 ...
- 使用Dynamics 365 CE Web API查询数据加点料及选项集字段常用查询
微软动态CRM专家罗勇 ,回复336或者20190516可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me. 紧接上文:配置Postman通过OAuth 2 implicit ...
- 本地Yum源配置
一.网络源 yum list 软件名称 查找源里的软件,可以使用通配符 二.配置源 源配置文件路径 /etc/yum.repos.d/ 配置项 [名称] 源标识(不能和其他的源重复) name=名称 ...
- 【JavaWeb】FreeMarker快速入门
FreeMarker Freemarker是免费开源的模板引擎技术: Freemarker脚本为Freemarker Template Language: Freemarker提供了大量内建函数来简化 ...
- MySQL 设置表注释
新增表增加注释 CREATE TABLE sys_tables ( owner ) NOT NULL COMMENT '归属用户', table_name ) NOT NULL COMMENT '表名 ...
- [转]Eclipse插件开发之基础篇(5) 制作OSGi Bundle
原文地址:http://www.cnblogs.com/liuzhuo/archive/2010/08/18/eclipse_plugin_1_2_2.html 1. 生成OSGi工程 首先打开新工程 ...