认识VBA------------------VBA基础
一、前言
在最近的工作中,有幸了解到VBA相关的知识,它主要是被应用于我们平时所使用的word和Excel中,主要用VBA代码来进行数据处理,在办公领域使用的比较广泛。通过一段时间的学习,总结了一些自己的理解和所学,在此于大家进行分享。
Visual Basic for Applications(VBA)是Visual Basic的一种宏语言,是微软开发出来在其桌面应用程序中执行通用的自动化(OLE)任务的编程语言。主要能用来扩展Windows的应用程序功能,特别是Microsoft Office软件。也可说是一种应用程式视觉化的Basic 脚本。该语言于1993年由微软公司开发的的应用程序共享一种通用的自动化语言——–Visual Basic For Application(VBA),实际上VBA是寄生于VB应用程序的版本。微软在1994年发行的Excel5.0版本中,即具备了VBA的宏功能。
二、编程规则
- 1.EXCEl的数据类型:日期值、数值、文本、逻辑值、错误值
- 2.VBA的数据类型:布尔型、整数型、小数型、字符串型、日期型、对象型,变体型、用户自定义类型(其中对象型需要多多了解),可以了解VBA为弱类型语言
- 3.声明变量:Dim 变量名 As 数据类型,可以定义不同的作用域(Public、Private、Static),Option Explicit加上这段代码可以强制声明所有变量
- 4.给数据类型的变量赋值:[Let] 变量名 = 要存的数据 (中括号的关键值可以省略)
- 5.给对象类型的变量赋值:set 变量名 = 要存储的对象名称。
- 6.可同时生成多个变量
- 7.声明常变量
- 8.声明数组:Dim 数组名 (a to b) As 数据类型,可以声明多维多维数组
- 9.可使用变量类型声明符定义变量类型:Dim Str As String 相当于 Dim Str$
- 10.声明变量时不指定变量类型那么这个变量就是变体形
那么接下来我们就来看一看一些基础的VBA代码:
Sub 测试()Dim arr() As VariantDim brr() As VariantDim i As IntegerDim Length As IntegerDim Longth As IntegerWorksheets("利润表").SelectLength = Range("A1").End(xlDown).RowFor i = 1 To Length Step 1Range("D" & i) = Cells(i+1,"E") + Cells(i+1,"F")NextWorksheets("合计表").SelectLongth = Range("C2").End(xlDown).RowFor i = 1 To Longth Step 1Range("E" & i) = Cells(i,"C") - Cells(i,"D")NextEnd Sub
VBA中使用Dim来定义变量,一般原型为 Dim 变量 As 数据类型,比如:
Dim arr() As Variant
Dim length As Integer
通过Dim来定义两个变量,定义一个数组的变量和一个定义长度的变量。它们的数据类型分别为Variant和Integer.
各数据类型所能表示的最大长度:
类型名称 类型 长度
比特 Byte 0到255
Integer -32768 ---- 32767
Long -2147483648----2147483647
单精度浮点型 single 1.401298*10^-45----3.402823*10^38
双精度浮点型 Double 4.94065645841247*10^-324------1.7969313486232*10^308
日期型 Date 100年1月1日 ------9999年12月31日
字符串型 不定长 0---20亿
定长 1到65400
变体型 Variant 保存任意值
访问某个表格中的单元格,一般的访问路径为:Excel程序--->工作簿---->工作表---->单元格:
三、运算符
1.算术操作符
+ : 两个操作数相加
- : 两个操作数相减
* : 两个操作数相乘
/ : 两个操作数相除
% : 模运算符,整数除法后的余数
^ : 指数运算符
2.比较运算符
= : 检查两个操作数的值是否相等。如果是,那么条件是真。
<> : 检查两个操作数的值是否不相等。如果值不相等,则条件为真。
> : 检查左操作数的值是否大于右操作数的值。如果是,那么条件是真。
< : 检查左操作数的值是否小于右操作数的值。如果是,那么条件是真。
>= : 检查左操作数的值是否大于或等于右操作数的值。 如果是,那么条件是真。
<= : 检查左操作数的值是否小于或等于右操作数的值。如果是,那么条件是真。
3.逻辑运算符
AND : 两个条件都为真,则表达式为真。
OR : 如果两个条件中的任何一个为真,则条件为真。
NOT : 用于反转其操作数的逻辑状态。 如果条件成立,那么逻辑非运算符结果是条件不成立。
XOR : 如果表达式中只有一个表达式的值为True,则结果为True。
4.连接操作符
& : 连接两个值
1 & 2 = 12
"1" & "2" = 12
+ : 将两个值添加为变量,其值是数字
1 + 2 = 3
"1" + "2" = 12
四、基础代码认识
1.VBA对单元格的操作1.获取单元格的值Sub alert()'A1 = Sheets(1).[a1] '获取第一个工作表(表名为工作表1)中A1的值赋值给X'A1 = Sheets("工作表1").[a1]'A1 = Sheets(1).Cells(1, 1)'A1 = Sheets("工作表1").Cells(1, 1)A1Range("A1").Value '获取当前工作表A1的值MsgBox (A1) '弹出对话框End Sub1.单元格赋值Sub setVal()Range("A1").Value = 100 '点击VBAProject窗口的'运行子过程'End Sub2.设置单元格的填充色Sub setColor()Range("B3").Interior.ColorIndex = 3 '值有1-56,代表56种颜色End Sub3.单元格的复制、粘贴Sub cut()Range("B3").copy Range("C3") '将B3的值,复制到C3单元格End Sub4.单元格的剪切Sub cut()Range("A1").cut Range("B3") '将A1的值,剪切到B3单元格End Sub2.条件判断结构if then 语句Sub if_test()B3 = Range("B3").ValueIf B3 > 10 ThenMsgBox ("大于10") '弹出字符串时,必须为双引号ElseIf B3 < 10 ThenMsgBox ("小于10")ElseMsgBox ("aaaa")End IfMsgBox (B3)End Sub
3.选择判断结构Select Case 语句Sub select_test()B3 = Range("B3").ValueSelect Case B3Case 1 To 10msg = "1到10之间"Case 11 To 20msg = "11到20之间"Case 21, 22msg = "21,22的值"Case Elsemsg = "其他的值"End SelectMsgBox (msg)End Sub
4.循环结构for next 语句Sub for_test()For i = 1 To 10 Step 1If i > 5 Then Exit For '跳出for循环End IfRange("D" & i).Value = i '循环赋值给D1-D10Next iEnd Subfor each 语句:用于为数组或集合中的每个元素Sub for_ecah_test()fruits = Array("苹果", "香蕉", "雪梨")For Each Item In fruitsMsgBox (Item)NextEnd Subdo while loop Sub do_while_loop_test()Do While i < 5 '在循环开始时,判断条件是否符合If i > 3 ThenMsgBox ("跳出循环")Exit DoEnd Ifi = i + 1MsgBox ("The value of i is : " & i)LoopEnd SubSub do_while_loop_test()Do If i > 3 ThenMsgBox ("跳出循环")Exit DoEnd Ifi = i + 1MsgBox ("The value of i is : " & i)Loop While i < 5 '在循环结束时,判断条件是否符合End Sub
认识VBA------------------VBA基础相关推荐
- 动态数组怎么定义_Excel VBA 数组基础知识,初学者不可不学的关键知识
今天和大家要说的是VBA数组的基本知识点,等你学到后面就会知道,数组和字典搭配起来真的是事半功倍的啦!所以学习好数组的基本知识点也是必不可少的,基础知识有了,才能有后面的应用. 数组的基本概念 数组其 ...
- VBA每日一练(4),补充VBA的基础语句知识,基本控制结构,I/O基础
一 编程的基础知识 1.1 编程基础知识 程序的构成 程序的构成(表面):很多语句 程序的构成(本质):数据,代码 程序的构成(过程构成)---I/O:输入 input,数据处理,输出 output ...
- EXCEL的VBA编程基础1
声明:本文原创,禁止转载:所有代码都通过测试 像任何一门语言一样,先来段最简单的代码 cells(a,b) 表示第a行,第b列的单元格内容,a,b是整数,b可以为字节串,如"a", ...
- [VBA]VBA调用Python
import xlwings as xwdef DailyAward():# 配置表读打开app = xw.App(visible=False, add_book=False)app.display_ ...
- keil debug如何在watch直接修改变量值_零基础学VBA:什么是VBA?如何编写和运行VBA代码?...
HI,大家好,我是星光,今天咱们来继续学习VBA.在上一章咱们讲了为什么要学习VBA~VBA还值不值得学~学了还有没有用~零基础学VBA编程01:VBA还能不能学?学了还有没有用? 这一章咱们再来简单 ...
- Access基础教程--第八章 使用VBA编程
本章内容 ◆ VBA编程基础 ◆ 创建和设计VBA程序 ◆VBA程序调试与运行 一.VBA编程基础知识 在执行简单的操作时,宏可以完成,如窗体的打开与关闭.工具栏的显示和隐藏等.对于稍复杂一些的任务, ...
- VBA基础概念和宏的录制
@示例文件 以下图为例,准备3份不同的Excel文件,分别命名为"2016 Revenues","2015 Revenues"和"2014 Reven ...
- 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.无参 ...
- vba 窗体单选框怎么传回sub_VBA之EXCEL应用
一直以来,总想写一部面对EXCEL的专门VBA教程,今终得如愿.想我初学VBA时,也是从EXCEL入手,不知深浅,也很难窥探到VBA的全貌,花费了大量的时间,走了很多弯路,却难得其所,关键就是没有好的 ...
- vba怎么安装_VBA还要学吗?怎么入门Excel VBA?
教程领到手,学习不用愁!领 ↑↑↑ 快捷高效入门:看知识兔视频课程,跟着知识兔老师操作,听知识兔老师讲解,边看边实练,初学者不要自己瞎琢磨瞎折腾,很容易走弯路.学以致用,光看不练都是假把式.学完知识兔 ...
最新文章
- short 类型的大小为( )个字节。_2008-2012,张一鸣在豆瓣书影音为字节跳动埋下的5个彩蛋...
- RNN-循环神经网络-02Tensorflow中的实现
- OpenGL之深入解析纹理的渲染使用
- 【Hadoop学起来】分布式Hadoop的搭建(Ubuntu 17.04)
- [蓝桥杯][2019年第十届真题]等差数列
- 我真out了,高端人士都这样玩儿?
- 关于并发数与在线数的概念
- c语言实验报告4结构体,c语言实验报告结构体.doc
- python3-关于GitHub的最基本操作
- HP笔记本装XP,‘基本系统设备’驱动的安装
- Elastic Searchable snapshot功能初探 三 (frozen tier)
- Python免费发短信
- SendMessage函数完全使用手册 (解读WM_)
- Android 天气APP(一)开发准备
- vlookup使用步骤_vlookup函数怎么使用_vlookup函数的使用方法及实例 - 系统家园
- 第十一届蓝桥杯省赛完整解析(Java 大学B组)
- skylake服务器CPU型号芯片,Skylake与Kaby Lake顶级处理器到底有多大差别?Intel i7-7700K评测...
- 【Linux】Linux的共享内存
- 360无线wifi路由器连接到服务器,360PI无线路由器怎么联接无线+有线?
- 启明星辰2018年营收达25亿元 同比增长10.58%
热门文章
- 港口水域电子海图数据快速检索算法及应用
- Web基础配置篇(四): Mysql的配置及使用
- 移动计算的未来:是什么在推动变革? | 幂集创新
- 华硕主板怎么刷bios
- 计算机软件性能测试的过程,软件性能测试过程研究与应用
- html wap加载优化,移动版Wap网页针对百度进行SEO优化的一些要点总结
- 如何将php改成mp4,如何将swf转换成mp4
- “去面试,你敢不填登记表吗?”“不敢”
- 光影精灵安装ubuntu20.04安装显卡驱动外界显示屏
- 2017大学网考计算机b,(热)2017年4月网考 大学英语b网考 电大英语网考 计算机应用.doc...