VBA的基本语法及基本使用解决日常遇到的基本问题

1.准备工作环境

1.1、office的下载
本教程基于Office,没有office的小伙伴可以去下载一个
链接如下(破解版,亲测永久有效):链接:https://pan.baidu.com/s/1e_4AlTAxmpGp24WjFtphKQ   提取码:yyds
1.2、新建工作环境

打开新建一个Excel表格,后缀名为.xls 或 . xlsm,但是excel默认后缀名为 .xlsx (xlsx不支持宏的定义,其余2种都支持,宏可以理解为不支持写VBA。。。。其实也可以写,就是保存有点问题,最好用其他2种吧)

  • 1.2.1有开发工具选项
    打开文件后点击上方的开发工具选项:

  • 1.2.2无开发工具选项
    右击帮助选项 -》自定义功能区 -》 勾选主选项卡中的开发工具框 -》成功后退出即可看见开发工具选项

  • 1.2.3点击最左侧的 Visual Basic 按钮即可进入一个新的窗口(此窗口即为工作区)

  • 1.2.4点击你文件名对应的那个文件夹 -》点击右键 -》 插入 -》 模块

  • 1.2.5此时你的文件夹下回出现一个名为模块1的文件 -》 双击打开 (ps:不用管其他的是什么,对于基本的使用不重要)

(ps:本来想加图片到里面的,但是这个MarkDown编辑器我导入图片总说我导入错误,理解一哈[dog] })

2.基本变量

VBA的基本变量常用为:

2.1、数值类型:

Byte : 0 - 255
Integer : -32768 - 32767
Long : -2147483648 - 2147483648
Single : 负数:-3.402823E+38 - -1.401298E-45 整数:1.401298E-45 - 3.402823E+38
Double : - 负数:-1.79769313486232e+308 - -4.94065645841247E-324
- 正数:4.94065645841247E-324 - 1.79769313486232e+308
Currency:-922337203685477.5808 ~ 922337203685477.5807

2.2、非数值类型:

String : 1 - 65,400个字符
Data :日期类型(100.1.1 - 9999.12.31 年.月.日)
Bolean : True 或 False
Object : 任何对象类型

(PS : 可以注意到数据类型都是第一个字母大写,有点C#那味了,其实还有很多其他的数据类型,一般记住常用的即可)

3、变量与常量

变量与常量的格式如下:

  • 第一个字符必须使用一个字母
  • 变量名不能有 :空格,&,!,¥,*, .(这是一个英文点),@ (PS:他没要求不可以使用中文,所以使用中文作为变量名嘎嘎爽)

变量赋值语句: Dim 变量名 As 基本数据类型
例如:

Dim num1 As Integer '声明num1这个变量为一个Integerleix   PS:一个英文单引号表示注释:'
Dim s As String '声明s为一个String类型的变量
Dim num2 As Long '我懒得写了,自己对比上面,以此类推,毕竟大家都是高手一看就懂
Dim nums As Single
Dim b As Boolean
....

常量赋值语法如下:Const 常量名 As 数据类型 = 具体值 (PS:常量一经定义赋值后不可修改)

Const i As Integer = 100
Const s As String = "This is a String"
.... '以此类推

4、运算符

基本运算符如下:

4.1、算数运算符:
+ 加
- 减
* 乘
/ 除
% 取余
^ 指数
4.2、比较运算符
=   >     <    <>    >=    <=
'这里就简单跳过,值得注意的是 = 即使赋值又是比较符,终于不用担心写判断条件的时候只写一个=而出BUG了【dog】
'<>表示不等于

5、小总结

学习了这么多,还没有实践,是不是有点记不住,下面讲一下程序的简单运行
VBA的调试输出可以使用 **MsgBox(“这是测试内容”)**通过弹窗了解程序的运行结果
你们可以暂时使用我下面的模板:

Sub 测试1()MsgBox("这是我的第一次输出")
End Sub

Sub就是一共执行过程,类似于SQL的PL/SQL执行过程,这里只是简单提一下,后面在讲解,暂时怎么使用即可
在Sub…和 End Sub 中间写你需要的运行代码
一个文件可以存在多个Sub过程 ,当你想要运行你要的那个Sub过程,你只需把鼠标放在你想要运行的那Sub过程代码上,按F5或点击上方功能区的运行 -》 运行宏

打开你之前新建的模板1 ,把我上面的代码拷贝到上面,修改后运行

Sub 测试2()Dim a As IntegerDim b As IntegerDim c As Integera = 1b = 10086c = a + bMsgBox("a+b=" &c)   '先不要管&是什么,下一节讲解,暂时这样写
End Sub

6、输入输出

6.1、输出:

输出语法为 MsgBox() 中间可以加若干参数,例如:

MsgBox("这是一个弹窗")
MsgBox("student " & "VBA")  '& 可以连接2个或多个变量,
Dim a As Integer
a = 10
MsgBox("a=" & 10)    '输出a=10
MsgBox("10086" &a &a)  '输出100861010  就是将对象作为字符串连接起来,没什么东西的'如果你想要在一个弹窗下换行,可以使用:
MsgBox("这是第一行"&Chr(10)&"这是第二行")

PS;这里使用的MsgBox只是简单的使用,其实MsgBox还有其他参数可供选择,具体可以另外了解

6.2、输入:

基本语法:InputBox(显示消息的字符串,文本框的名称) 此语法一定要复制给一个变量,不然会报错
例如:

InputBox(" 请输入一个数字","输入数字")  '会报错
 Dim i As Integer
i = ImputBox(" 请输入一个数字","输入数字") '不会报错,并把你输入的值赋值给i

PS;这里使用的InpurBox()只是简单的使用,其实InpurBox还有其他参数可供选择,具体可以另外了解,这里基本使用足矣

7、判断语句

7.1、if判断语句:
Sub if判断()Dim a As Integra = 10If a > 0 ThenMsgBox("a的值大于0")End If
End Sub
7.2、if…else判断语句
Sub if判断语句2()Dim a As Integera = 10If a > 0 ThenMsgBox("a的值大于0")Else MsgBox("a的值小于等于0")End If
End Sub
7.3、if…elseif…else
Sub if判断语句3()Dim a As Integera = 10If a > 0 ThenMsgBox("a的值大于0")Else If a = 0 ThenMsgBox("a的值等于0")Else MsgBox("a的值小于0")End If
End Sub
7.4、switch语句 (使用较少)

(虽然说是switch,都是这个单词都没有出来过)

Sub 判断语句4()Dim a As Integera = 10Select Case aCase 1MsgBox("a=1")Case 2MsgBox("a=2")Case 3MsgBox("a=3")Case ElseMsgBox("a的值可能等于10【dog】")End Select
End Sub

8、循环语句

8.1、for循环*(使用较多,反正我一直用的是这个)
Sub 循环1()Dim a As Integera = 10086For i To a Step 2  '可以指定步数MsgBox("i=" &i)End For
End Sub
8.2、for…each 循环
Sub 循环2()nums = Array("a","b","c")  '声明一个数组,后面会讲Dim n As Variant '声明n是一个变量For Each item In numsn = n &itemNextMsgBox("n="&n)
End Sub     '输出abc
8.3、Do…While
Sub 循环3()Dim i As Integer i = 1Do While i < 5i = i+1MsgBox("i="&i)Loop
End Sub
8.4、Exit…For
Sub 退出循环()For i = 1 To 10 Step 1If i = 4 Theni = i * 10Exit ForEnd IfNext
End Sub

9.数组

9.1、数组新建方式:
方式一:
Dim arr1()  '没有初始化
方式二:
Dim arr2()  '初始化数组,使用较多
方式三:
Dim arr3
arr3 = Array("a","b","c")  '使用较多

注意事项:Dim arr(6) 虽然只赋值了6,都是数组下标是从0开始到下标6,有7个元素,与认知有点不同(数组有点大,你忍一下)

数组可以存储如何对象数据类型,例如Integer,String等 for example:Dim arr arr = Array(“a”,10086,Array(“b”))

9.2、数组元素赋值
Dim arr(3)
arr(0) = 1
arr(1) = "abd"
9.3、多维数组
Dim arr(2,2)
arr(0,0) = "abd"
...
9.4、数组常用方法
Sub 数组常用方法()Dim arr(2)arr(0) = "a"arr(1) = "b"arr(2) = "c"MsgBox(LBound(arr))   '返回数组的最小下标 这里返回0MsgBox(UBound(arr))   '返回数组的最大下标,这里返回2a = Split("a%b%c","%") '此时a的值等于一个数组("a","b","c")
End Sub

10、字符串

10.1、语法:

Dim s As String
Dim = “” ’ ""内的所有内容可以被认为是一个字符串,里面可由数字,字母。特殊字符组成

10.2、常用方法:
Len(string)   '  返回字符串长度
Trim(string)   '返回出去首尾空格的字符串
LCase(string)  '返回指定字符串后大写的字符串
...

11、自定义函数

Function 这是一个函数()'又Function关键字组成,()里包含参数Dim s As Integers = 10086这是一个函数 = s  '返回值语法,也可以没有返回值
End Function

调用就在你之前新建的表格里输入:这是一个函数() 即可显示10086 (图片放不进来。。。。)

11、子过程的创建于调用

Sub 这是一个子过程()' 子过程由Sub包围起来,无返回值MsgBox("这是一个子过程输出")
End Sub

12、总结

后续更新中ing

VBA基本语法及基本使用相关推荐

  1. currency类型_让我们一起走进VBA基本语法的世界,先了解一下数据类型有哪些

    是的你们没有看错,VBA也是有自己的语法原则的,不是随意乱写的,在语法中规定了怎么表示单元格,怎么表示一个表等等. 有人问VBA的语法难吗?只要你坚持学习,然后有时间就去练习坚持不懈,那对你来说一定不 ...

  2. VBA基础语法学习代码

    Option Explicit ' 这行指令表示 变量需要显示声明 ,一般用在文件开头. 一.操作单元格对象 注释 Sub test()'弹出对话框' "'"注释 单引号Rem 另 ...

  3. Excel VBA简单语法

    摘要: 该文为想要学习VBA编程的会计和编程同学有使用VBA实现Excel自动化处理和一定的个性化定制Excel操作提供参考 第一篇为::VBA简单语法 第二篇为: Excel 编写第一个简单的VBA ...

  4. CorelDRAW插件-GMS插件开发-VBA基础语法-变量、运算符、函数-CDR插件(三)

    文章目录 1.变量 1.1.命名要求 1.2.作用域 1.3.变量赋值 1.4.数组 2.运算符 2.1.算术操作符 2.2.比较运算符 2.3.逻辑运算符 2.4.连接操作符 3.函数 3.1.无参 ...

  5. 【VBA编程】VBA基础语法(二)

    一.VBA中的内置函数 合理使用函数不但可以节省处理数据的时间,提高工作效率还可以降低编程的难度,减少编写代码的工作量. 例如想知道当前系统时间: Sub NowTime()MsgBox " ...

  6. VBA基础语法:循环语句

    目录 使用 Do...Loop 语句 直到条件为 True 时重复语句 直到条件变成 True 才重复语句 从循环内退出 Do...Loop 语句 使用 For...Next 语句 使用 For Ea ...

  7. VBA基础语法:取整函数

    VBA取整函数有好几个,用法也不同,有的还可以在工作表中使用,下面根据需求分别说明: 1.四舍五入取整,一般用于取近似数 (1)CInt:只能在VBA中使用 CInt(12.56)=13, CInt( ...

  8. multism中ui和uo应该怎么表示_Excel中VBA程序基本语法之强大的数组,了解数组的功能...

    前面的文章我们分享了VBA基本语法当中的变量和常量以及变量的作用域. 下面我们一起了解一下VBA基本语法的数组. 首先我们一起了解一下什么是VBA中的数组? 数组其实也是变量的一种,它就是同一类型的多 ...

  9. vba sub是什么缩写_这些掌握了,你才敢说自己懂VBA

    上周,我发了关于Excel VBA的第一篇文章后,社群里就砸开了锅 看到辣么多小伙伴们,辣么喜欢,我的干劲儿就更足了. 于是,我准备把Excel VBA写成一个系列免费教程,撸完这个系列你也是VBA界 ...

  10. 计算机高级语言程序Access,[计算机软件及应用]Access的编程语言VBA.ppt

    [计算机软件及应用]Access的编程语言VBA Access的编程语言VBA ycxcm@ctgu.edu.cn Access的编程语言VBA VBA是Visual Basic for Applic ...

最新文章

  1. 把python语言翻译出来_Python语言实现翻译小工具(Python打包成exe文件)
  2. 异常空格,ASCII (194,160)问题
  3. the job was canceled什么意思_什么第三人称单数形式?怎么用?
  4. RIL接听电话没有声音的问题 [ RIL_Answer | RIL_SetAudioDevices ]
  5. Spring Boot 消息队列 RocketMQ 入门
  6. CentOS7下分布式文件系统FastDFS的安装 配置 (单节点)
  7. Google工程师多图详解Android系统架构
  8. Python webdriver 读取本地csv文件中数据 提示:IOError: [Errno 2] No such file or directory
  9. linux/unix 上那些炫酷的命令行工具(一)
  10. 77款免费可商用字体!!!
  11. 前端基础项目(一)学成在线网站静态网页,HTML+CSS,简单基础,附完整源码
  12. 指数平滑法——趋势平滑预测方法
  13. python ks值计算_风控模型中的K-S理解以及python实现
  14. LayaBox2D使用自定义Shader的方法
  15. 【产业互联网周报】AWS 全球换帅,中国区发布战略;杨杰回应回A,中移动计划千亿投5G;全球缺芯潮持续...
  16. 用了python之后笔记本卡了_用chrome运行的Jupyter笔记本在服务器res上卡住了
  17. SLAM--VICP(Velocity Updating Iterative Closest Point Algorithm)学习笔记
  18. 个人简历应聘优势怎么写? 个人优势让你的简历模板加分
  19. redis命令---redist键命令(key)---redis字符串命令(str)
  20. 【问题小结】CH340驱动安装——端口无法识别

热门文章

  1. python核心技术实战详解_Python核心技术实战详解
  2. 有赞 插入html,有赞 前端工程师面试题
  3. 关于Maven构建的项目依赖范围
  4. MySQL(13)-----多表查询(子查询)
  5. 模拟赛 10-20考试记
  6. 写个批处理脚本来帮忙干活--遍历文件夹字符串处理
  7. redis数据类型-列表类型
  8. http之httpClient工具类
  9. OSX: Scripts,让BootCamp在不论什么Mac上支持生成Windows7的USB安装盘
  10. 网易和淘宝的rem方案剖析