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 Integer
Dim b As Integer
Dim c As Integer
a = 1
b = 10086
c = a + b
MsgBox("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 Integr
a = 10
If a > 0 Then
MsgBox("a的值大于0")
End If
End Sub
7.2、if…else判断语句
Sub if判断语句2()
Dim a As Integer
a = 10
If a > 0 Then
MsgBox("a的值大于0")
Else
MsgBox("a的值小于等于0")
End If
End Sub
7.3、if…elseif…else
Sub if判断语句3()
Dim a As Integer
a = 10
If a > 0 Then
MsgBox("a的值大于0")
Else If a = 0 Then
MsgBox("a的值等于0")
Else
MsgBox("a的值小于0")
End If
End Sub
7.4、switch语句 (使用较少)
(虽然说是switch,都是这个单词都没有出来过)
Sub 判断语句4()
Dim a As Integer
a = 10
Select Case a
Case 1
MsgBox("a=1")
Case 2
MsgBox("a=2")
Case 3
MsgBox("a=3")
Case Else
MsgBox("a的值可能等于10【dog】")
End Select
End Sub
8、循环语句
8.1、for循环*(使用较多,反正我一直用的是这个)
Sub 循环1()
Dim a As Integer
a = 10086
For 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 nums
n = n &item
Next
MsgBox("n="&n)
End Sub '输出abc
8.3、Do…While
Sub 循环3()
Dim i As Integer
i = 1
Do While i < 5
i = i+1
MsgBox("i="&i)
Loop
End Sub
8.4、Exit…For
Sub 退出循环()
For i = 1 To 10 Step 1
If i = 4 Then
i = i * 10
Exit For
End If
Next
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)) '返回数组的最小下标 这里返回0
MsgBox(UBound(arr)) '返回数组的最大下标,这里返回2
a = 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 Integer
s = 10086
这是一个函数 = s '返回值语法,也可以没有返回值
End Function
调用就在你之前新建的表格里输入:这是一个函数() 即可显示10086 (图片放不进来。。。。)文章来源:https://www.toymoban.com/news/detail-445115.html
11、子过程的创建于调用
Sub 这是一个子过程()
' 子过程由Sub包围起来,无返回值
MsgBox("这是一个子过程输出")
End Sub
12、总结
后续更新中ing文章来源地址https://www.toymoban.com/news/detail-445115.html
到了这里,关于VBA基本语法及基本使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!