VBA基本语法及基本使用

这篇具有很好参考价值的文章主要介绍了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文章来源地址https://www.toymoban.com/news/detail-445115.html

到了这里,关于VBA基本语法及基本使用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • lua基本语法使用

    1.基本语法 2.标识符 全局变量和局部变量 4.ipairs() 和 pairs() 函数的区别 lua中只有false和nil为false,其余都为true 数据类型 number [[]] 可以包含换行的字符串 字符串与数字做数学运算时,优先将字符串转成数字 5.数据类型 -- table 6.数据类型---其他 7.索性 8.循环 流程控制 10.函数 可以

    2024年02月05日
    浏览(39)
  • YAML基本介绍和使用语法

    YAML是一种计算机数据序列化语言。(YAML is a computer data serialization language.)YAML is a human friendly data serialization standard for all programming languages(YAML是一个对所有编程语言都很友好的数据序列化标准),可以用于多种编程语言。因其良好的跨语言、跨平台、易于理解、格式简单而

    2024年02月10日
    浏览(37)
  • Qt的基本语法及其使用(一)

    Qt的概念: Qt是通用的C++开发界面框架(C++图形用户界面 应用程序开发框架),既可以开发GUI程序也可以开发开发非GUI程序,Qt是面向对象的框架,使用特殊的代码生成扩展。 Qt的历史: 1991由QT公司研发,2008年被诺基亚收购,2012年被Digia收购。 Qt模块: Qt Core模块: 是QT类库的核心

    2024年02月05日
    浏览(34)
  • Angular 使用教程——基本语法和双向数据绑定

    Angular 是一个应用设计框架与开发平台,旨在创建高效而精致的单页面应用 Angular 是一个基于 TypeScript 构建的开发平台。它包括:一个基于组件的框架,用于构建可伸缩的 Web 应用,一组完美集成的库,涵盖各种功能,包括路由、表单管理、客户端-服务器通信等,一套开发工

    2024年02月05日
    浏览(44)
  • JSON 基本语法以及在Java 中的使用

    JSON(JavaScript Object Notation)是一种轻量级的数据交互格式。它去除了所有 JavaScript 执行代码,只保留 JavaScript 的对象格式。 它基于 ECMAScript (欧洲计算机协会制定的 js 规范)的一个子集,采用完全独立于编程语言的文本格式来存储和表示数据。 JSON适合表示层次结构,JSON采用键

    2024年01月23日
    浏览(45)
  • VBA(6)数组基本用法及写入输出

    1.数组的基本概念就不过多介绍了;本次为基础复习篇:直接上实例备注说明 K例在本机测试K1运行时间为1帧不到,K2为16帧左右.故而注:调用内存时运行速度较快,在写宏时应尽量多使用内存/数组运算. 2.数组的写入及输出 \\\'以上几种为数组常见赋值方式,部分版本定义一个变量体

    2024年02月11日
    浏览(46)
  • lua脚本的基本语法,以及Redis中简单使用

    Lua 脚本的基本语法如下: 变量与赋值: 变量名可以是字母、数字和下划线的组合,以字母或下划线开头。Lua 是动态类型语言,无需事先声明变量类型。 控制结构: a) 条件语句: b) 循环语句: 函数定义: 函数可以有参数和返回值。 表(table): 表是 Lua 中的一种数据结构

    2024年02月04日
    浏览(52)
  • Eclipse的基本使用讲解(建项目,建包,建类,写代码(基本语法))新手入门必备

    目录  一.介绍eclipse  二.操作Eclipse 1.选择工作空间 2.建项目,建包,建类 1.建项目(两种) 2.建包 3.建类 三.写代码(基本语法) 1.代码操作 2.代码规范 3.代码注释 Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件

    2024年02月07日
    浏览(48)
  • 【Unity】Unity Shader学习笔记(四)创建和使用、基本语法、属性基本类型、数值精度

    由于着色器是依赖于材质的,所以创建着色器之前通常要先创建一个材质(Material)。然后再创建一个Shader。 结果如下: 然后给材质指定Shader,再给物体指定材质。 建好Shader后双击打开,通常默认使用vs studio开发shader。一个Shader主要的内容都是写在 Shader {} 代码块中,其中包

    2024年02月16日
    浏览(41)
  • 【C语言初阶篇】for语句的基本语法和使用规则!

    🎬 鸽芷咕 :个人主页  🔥 个人专栏 :《C语言初阶篇》 《C语言进阶篇》 ⛺️生活的理想,就是为了理想的生活!    🌈 hello! 各位宝子们大家好啊,前面给大家详细介绍了while语句但是它也是有缺点的,所以我们就有了更好的语法for!    ⛳️ 那么今天我们就介绍一下

    2024年02月14日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包