VBA基本语法及基本使用

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 (图片放不进来。。。。)

11、子过程的创建于调用

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

12、总结

后续更新中ing

  • 2
    点赞
  • 21
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
很详细的VBA语法介绍: 一、VBA入门知识 。。。 二、了解对象、属性、方法和事件 1、了解对象、属性、方法和事件 2、Application 对象 3、Workbook 对象 4、Workbooks 属性 5、Range 对象 6、Range 属性 7、Cells 属性 。。。 三、VBA语法 (一)Visual Basic 的命名规则 1、写 Visual Basic 语句 2、写声明语句 3、Dim 语句的语法 4、Activate 方法的语法 5、Set 语句 3 6、MsgBox 函数的语法 7、选项语句的语法 8、AddressOf 运算符 9、了解变体 10、写赋值语句 11、写可执行的语句 12、Public 语句 13、Private 语句 14、使用数组 15、使用常数 16、AppActivate 语句 17、Beep 语句 19、Date 语句 20、Error 语句 21、Exit 语句 22、GoSub...Return 语句 23、GoTo 语句 24、Input # 语句 25、Let 语句 26、Load 语句 27、Name 语句 28、On...GoSub、On...GoTo 语句 29、Open 语句 30、Rem 语句 31、Stop 语句 32、Time 语句 33、While...Wend 语句 (二)逻辑语句 1、If...Then...Else 语句 2、使用 Select Case 语句 3、使用 For...Next 语句 4、For Each...Next 语句 5、 Do...Loop 语句 6、 With 语句 (三)过程 1、写 Sub 过程 2、写 Function 过程 3、写 Property 过程 四、 ActiveX 控件 1、AfterUpdate 事件 2、Click 事件 3、Click 事件、命令按钮控件、Accelerator 和 Caption 属性示例 4、DblClick 事件 5、Error 事件 6、KeyDown 和 KeyUp 事件 7、KeyPress 事件 8、KeyPress 事件示例 9、MouseDown 和 MouseUp 事件 10、MouseMove 事件 11、列表框控件 12、SpinDown 和 SpinUp 事件 13、SpinDown、SpinUp 事件和 Delay 属性示例 14、组合框控件 15、命令按钮控件 。。。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值