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 ...
随机推荐
- php date获取前一天的时间
结果: 结论: 第二种方式只使用了一个函数,所以更快一些,速度大约是第一种的两倍
- C语言程序设计100例之(5):分解质因数
例5 分解质因数 题目描述 将一个正整数分解质因数.例如:输入90,输出 90=2*3*3*5. 输入 输入数据包含多行,每行是一个正整数n (1<n <100000) . 输出 对 ...
- Groovy元编程简明教程
同函数式编程类似,元编程,看上去像一门独派武学. 在 <Ruby元编程>一书中,定义:元编程是运行时操作语言构件的编程能力.其中,语言构件指模块.类.方法.变量等.常用的主要是动态创建和访 ...
- HTTP/2 新特性总结
我在想了解HTTP/2的时候,查阅了很多资料,发现这篇很好,是外国的文章.我翻译过来,加入自己的一点理解. HTTP/2 更简单,高效,强大.它在传输层解决了以前我们HTTP1.x中一直存在的问题.使 ...
- laravel中视图的基本使用(七)
laravel中的视图默认保存在 resources\views 目录下.在控制器中,我们通常使用 view() 方法返回一个视图文件. <?php namespace App\Http\Con ...
- Java入门系列之字符串特性(二)
前言 上一节我们讲解到字符串本质上就是字符数组,同时详细讲解了字符串判断相等需要注意的地方,本节我们来深入探讨字符串特性,下面我们一起来看看. 不可变性 我们依然借助初始化字符串的方式来探讨字符串的不 ...
- Nginx 极简教程(快速入门)
作者:dunwu github.com/dunwu/nginx-tutorial 推荐阅读(点击即可跳转阅读) 1. SpringBoot内容聚合 2. 面试题内容聚合 3. 设计模式内容聚合 4. ...
- wpf source path
<Image Source="pack://application:,,,/Images/Folder-icon.png"/> <Image Source=&qu ...
- ASP.NET MVC AJAX 请求中加入 antiforgerytoken 解决“所需的防伪表单字段“__RequestVerificationToken”不存在”问题
在ASP.NET mvc中如果在表中使用了@Html.AntiForgeryToken(),ajax post不会请求成功 解决方法是在ajax中加入__RequestVerificationToke ...
- MySQL问题记录——导入导出权限设置
MySQL问题记录——导入导出权限设置 摘要:本文主要记录了在使用MySQL的过程中导入导出权限设置时遇到的问题以及解决方案. 相关日志 [Note] --secure-file-priv is se ...