前言

本来我想可能不会接触到这个语言, 不过在用excel时需要用到VBA. 这就不得不专门去学习一番.

入了个门, 专门写个文档留着. 万一以后用得到呢…

论VB, 我还是初学者. 如有弄错了的地方. 你倒是来打我呀~

学习和阅读这篇文章, 需要你有其他编程经验. 我不会长篇大论的和你解释什么是”变量”什么是”循环”

VB/VBA/VBS 的区别

VB是一门编程语言, 开发软件的. 容易上手, 但不适合开发复杂的软件. 现在快安享晚年了吧~

VBS使用的是VB的语法结构, 全称”VBScript”是一个脚本语言, 嵌入到网页中使用的(也有其他领域)

VBA的全称是”VBApplication”, 是嵌入在一些特殊软件中的. 比如Excel. 方便大家发挥骚操作

数据类型

类型 中文名称 大小 说明
Boolean 布尔型 2字节 true和false
Byte 字节型 1字节 0~255
Integer 整数型 2字节 -32768~32767
Long 长整数 4字节 -2147483648~2147483647
Single 单精度浮点 4字节 -3.402823E38~-1.401298E-45(负数)
1.401298E-45~3.402823E38(正数)
Double 双精度浮点 8字节 -1.79769313486231E308~-4.94065645841247E-324(负数)
4.94065645841247E-324~1.79769313486232E308(正数)
Currency 货币型 8字节 -922337203685477.5808~922337203685477.5807
Decimal 小数型 14字节 ±79228162514264337593543950335(没有小数点时)
±7.9228162514264337593543950335(小数点右边带28位)
最小的非零值为±0.0000000000000000000000000001
Date 日期类型 8字节 100年1月1日~9999年12月31日
Object 对象类型 4字节 任何对象的引用
String 字符串(变长) 10字节+字符串长度 0~约2亿个字符
String 字符串(定长) 字符串长度 1~约65400个字符
Variant(数字) 16字节 任何数字值,最大可达Double的范围
Variant(字符) 22字节+字符串长度 与可变长字符串有相同的范围
用户定义型 元素必需的数字 每个元素的范围与字本身数据类型的范围相同

语言风格介绍

快速的了解一下这个语言的风格

Sub 功能模块()
If 1=1 Then
MsgBox "对的"
Else
MsgBox "错的"
End If
End Sub

不是类C语言的风格, 一切都是语句在控制. 没有方括号, 没有”;”结尾, 没有语法糖 只能依靠缩进和换行来看懂.

注释

'我是单行注释, 注意前面是一个单引号

常量

[Public | private]Const 常量名[As 数据类型]=表达式

Const 文本 As String = "得罪了方丈还想走?!"

常量设定后, 不允许修改值

变量

声明变量的方法是”Dim 变量名称 As 数据类型”

Dim Names As String

Dim Age1,Age2 As Integer = 45  '声明多个变量并且赋值

SUB模块

[Private | Public] Sub 模块名称()
...
[Exit Sub] //退出模块
End Sub

调用模块

假如我们有一个”关闭”模块, 调用它就需要用到”Call”语句

Sub 关闭()
...
End Sub Call 关闭()

运算符

不可以忽略哦, VB的许多运算符和其他编程语言不太一样

运算符 作用 举例 其他说明
= 等于 If 1 = 1 Then …
<> 不等于 1 <> 2
> 大于 2 > 1
>= 大于等于
< 小于
<= 小于等于
+ 相加 i=n+100
- 相减 i=n-50
* 相乘 i=500 * 60
/ 除法 i=36 / 3
& 字符串连接 str = “你好” & “我是剑齿虎” “&”是强制性连接,就是不管什么都连接。
VBA里用到的… 不知道通用不
+ 字符串连接 str=”CHI” + “NA” “+”是对字符串进行连接,对数字则进行加法运算。
(用“+”号的时候,“+”前后类型要一致)
Or 或者 If 1=1 Or 1=2 Then …
And 并且 If 1=1 And 2=2 Then …

欢迎补充

IF判断

简写的If

If 条件 Then ... [End If]

支持Else和ElseIf

If <条件1> Then
...
ElseIf <条件2>
...
Else
...
End If

Select多项选择 (就是switch)

Select Case <值>
Case 1
...
Case 2
...
End Select

循环

For循环

来一个栗子吧, 初始化i为1. 循环100次

For i = 1 To 100
...
[Exit For]
Next

遍历集合/遍历数组 (For Each)

请注意, foreach不能使用 End ForEach哦~

For Each cell In 集合
MsgBox cell.name
Next cell

判断循环

语法格式 : do While … Loop

do while <条件>
...
Loop

循环判断

语法格式 : do … Loop Until <条件>

Do
...
Loop Until <条件>

恭喜您, 你已经入门了VB. 并解锁了以下技能

  • 语法结构
  • 注释
  • 常量
  • 变量
  • 模块/函数
  • 判断语句
  • 循环语句

VB快速上手文档教程的更多相关文章

  1. 数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1)

    数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1)

  2. oracle数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1)

    数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1) 文档内容   用途   详细信息   Patchsets ...

  3. jquery.cookie 使用文档,$.cookie() 文档教程, js 操作 cookie 教程文档。

    jquery.cookie 使用文档,$.cookie() 文档教程, js 操作 cookie 教程文档. jquery.cookie中的操作: jquery.cookie.js是一个基于jquer ...

  4. 【Elastic-1】ELK基本概念、环境搭建、快速开始文档

    TODO 快速开始文档 SpringBoot整合ELK(Logstash收集日志.应用主动向ES写入) ELK接入Kafka 基本概念 ElasticSearch 什么是ElasticSearch? ...

  5. L18 如何快速查找文档获得帮助

    原地址:http://www.howzhi.com/course/286/lesson/2121 查找文档快速 苹果提供了丰富的文档,以帮助您成功构建和部署你的应用程序,包括示例代码,常见问题解答,技 ...

  6. 用docsify快速构建文档,并用GitHub Pages展示

    什么是docsify 无需构建,写完 markdown 直接发布成文档,写说明文档的极佳选择. 快速上手 安装 npm i docsify-cli -g docsify init docs 创建项目 ...

  7. Spring Boot项目使用Swagger2文档教程

    [本文版权归微信公众号"代码艺术"(ID:onblog)所有,若是转载请务必保留本段原创声明,违者必究.若是文章有不足之处,欢迎关注微信公众号私信与我进行交流!] 前言 Sprin ...

  8. 推荐一个vuepress模板,一键快速搭建文档站

    介绍 vuepress-template是一个简单的VuePress案例模板,目的是让用户可以直接clone这个仓库,作为初始化一个VuePress网站启动项目,然后在这个项目的基础上新增自定义配置和 ...

  9. Vb.Net Xml文档格式化

    最近在处理Webservice文档的时候,因为是未格式化的,需要处理,所以有了以下代码. #Region "Xml字符串转换成格式化的XML文件" 'txt_Result.Text ...

  10. go语言从零学起(一) -- 文档教程篇

    先记录一下自己学go语言的出发点 作为一个phper,精通一门底层语言一直是努力的目标. 相对于c,c++,go语言不需要过多的关注指针,内存释放,一两行代码就能跑起一个server服务,简直不要太简 ...

随机推荐

  1. Python网页开发神器fac 0.2.9、fuc 0.1.29新版本更新内容介绍

    fac项目地址:https://github.com/CNFeffery/feffery-antd-components fuc项目地址:https://github.com/CNFeffery/fe ...

  2. 从输入URI到浏览器渲染中间都经历了什么

    这篇文章总共分为两个部分,第一部分我会把从输入url到浏览器渲染的整个流程给大致说一下.第二部分我就会一一介绍各个部分的详细作用. 一.从输入url到浏览器渲染的整个流程   1.DNS域名解析 2. ...

  3. Python常用基础知识整理

    一.Python转义字符 \a :响铃(BEL) \b : 退格(BS) ,将当前位置移到前一列 \f :换页(FF),将当前位置移到下页开头 \n :换行(LF) ,将当前位置移到下一行开头 \r ...

  4. 温故知新,signalR、RSA加密、ConcurrentQueue队列

    这是一个用户密码异步加解密的Demo,包含了RSA非对称加密,ConcurrentQueue线程安全队列使用,signalR实时推送加解密信息等内容. 说在前面的话 距离上次更新已然快过去一年了,这中 ...

  5. PHP检查更新加载本地版本号并解压覆盖

    <?phperror_reporting(0);ob_implicit_flush(true);$begin = microtime(true);//检查更新,加载本地版本号$config = ...

  6. 1.5 编写自定位ShellCode弹窗

    在笔者上一篇文章中简单的介绍了如何运用汇编语言编写一段弹窗代码,虽然简易ShellCode可以被正常执行,但却存在很多问题,由于采用了硬编址的方式来调用相应API函数的,那么就会存在一个很大的缺陷,如 ...

  7. 国内可用的GPT4镜像站

    我做了个镜像站,GPT4的费用目前太贵了. 虽然做了个低价的月费,但基本上亏本在做,接口的实际费用高出太多. 运行了1个月,每天有几十人在用吧. 有兴趣的可以收藏一下 GPT4的验明正身的问题&quo ...

  8. sensor binning信号及信噪比

    Signal是简单的增加,Noise是以均方根形式增加 例如: 2*2的binning模式中,signal增加4倍,noise增加 4 \sqrt4 4 ​倍,so SNR增加2倍. sony sen ...

  9. 使用docker安装的tomcat部署activiti-app.war、activiti-admin.war失败(ClassNotFoundException)

    背景 一直以来习惯用docker配置一些本地学习环境,许多教程配置activiti的方式都是通过复制activiti的war包部署在tomcat中,我尝试了一下通过docker的方式遇到了一些不易察觉 ...

  10. OceanBase 分布式存储管理

    分布式存储管理 分区表管理 定义 把普通的表的数据按照一定的规则划分到不同的区块内,同一区块的数据物理上存储在一起. 每个分区还能按照一定的规则再拆分成多个分区,这种分区表叫做二级分区表. 分区分类 ...