VBA入门1——基础

news/2024/7/21 5:58:06 标签: vba, excel

VBA基础入门

  • VBA基础
    • 认识VBA
      • 注释
      • 变量
      • 常用 Excel 对象
      • 代码组命令
      • 编辑器模块
    • 基础操作
      • 编辑器格式
      • 模块、函数插入与导出
      • 代码运行
    • 编写你的第一个 VBA 宏
    • Excel录制宏并查看宏代码
    • Excel 中如何运行 VBA 代码?
  • VBA 变量、类型、运算符
    • VBA 变量基础教程(VBA 核心概念)
      • 变量定义
      • 数据类型
    • VBA 常量基础教程(基础概念)
    • VBA 运算符基础教程(加减乘除+高级操作)
    • VBA 数据类型基础教程(程序更高效、更精准)

VBA基础

认识VBA

注释

VBA 中的注释以英文单引号 (‘) 开头,后面接注释的内容。从单引号开始的部分不会被执行。

vba">'我是一行注释

变量

变量是存储数据的一种表达方式。在程序开始,可以声明一个变量,指定变量的类型(数字、文本、逻辑值等),并给变量赋值。
在程序其他地方,就可以用该变量,使其存储的值参与运算。

vba">'声明一个文本类型的变量
Dim s As String
'给 s 变量赋值,即 "Hello World"
s = "Hello World"
'在 A1 单元格写入 s 变量存储的数据
Range("A1").Value = s

常用 Excel 对象

Application 对象,表示 Excel 应用程序。
Workbook 对象,表示工作簿对象。
Worksheet 对象,表示工作表对象
Range 对象,表示单元格区域对象。

代码组命令

开发工具选项卡共包含三组命令,其中代码组的命令是使用最频繁的一组命令。加载项组和控件组的命令使用的较少。
今天先简单说一下代码组命令的功能。

  • Visual Basic:打开 VBA 编辑器,快捷键是 Alt + F11。
  • 宏:打开宏列表,并且可以对列表中的宏进行编辑,例如运行、修改、删除等。
  • 录制宏:将键盘和鼠标操作,自动转换成 VBA 代码。这个功能在实际的开发过程中非常有用。
  • 使用相对引用:录制宏时的设置选项。
  • 宏安全性:设置 Excel 如何对待包含 VBA 代码的工作簿。因为存在一些恶意的代码,所以一般将宏安全性设置为禁用。

编辑器模块

在这里插入图片描述

编辑器中每个模块的基本用法如下:

  • 工具栏:编辑器命令栏,与 Excel 功能区域类似,包含 Excel VBA 开发相关的命令。
  • VBA 工程:显示当前 VBA 工程包含的所有对象。通常,一个工作簿就是一个 VBA 工程,其中包括 Excel 对象、工作表对象、模块等。
  • 属性窗口:查看和设置选中对象的属性的窗口。
  • 代码编辑窗口:实际编写代码的位置。编写、修改、保存代码,都在这里进行。
  • 立即窗口:代码运行过程中,打印出的内容,在立即窗口中显示。一般用于调试代码。

基础操作

编辑器格式

选择【工具】–【选项】–【编辑器格式】
在这里插入图片描述

模块、函数插入与导出

VBA可以通过工具栏或者鼠标右键插入/删除模块,导入/导出模块;VBA 模块导出的文件类型是【.bas】类型文件,可以使用记事本、代码编辑器等文本编辑器打开并修改。

插入过程可以通过工具栏,这时会弹出属性设置窗口,其中输入过程名,指定作用域(私有或共有)。其中私有指的是,插入的过程只能在当前模块内使用;共有指的是在工程内其他模块内也能被使用。也可以直接输入过程或函数的相关信息,输入完过程或函数的范围和名称后回车,VBA 编辑器自动将结束语句写好。

代码运行

  1. 工具栏选择「运行」→「运行子过程/用户窗体」命令;
  2. 将光标放置在要运行的代码的任意一处,再点击快捷工具栏「▶ 」按钮;
  3. 将光标放置在要运行的代码的任意一处,再使用快捷键 F5,即可运行代码。

编写你的第一个 VBA 宏

选中左侧工程列表中的工作簿,后右键,在弹出的选项列表中,选择「插入」。二级菜单中,选择「模块」,完成插入新模块。
下图位置可以修改模块名:
在这里插入图片描述
在模块中输入代码,运行。

vba">Sub MyCode()
    MsgBox "Hello World"
End Sub

结果:在这里插入图片描述

Excel录制宏并查看宏代码

点击「开发工具→录制宏」按钮。
进行需要录制内容的操作,比如:将B1单元格的背景改为浅绿色。点击结束录制按钮,点击开始录制后,录制宏的位置就会变成结束录制。
打开VBA,此时会多出一个新的模块1,就是宏的代码:
在这里插入图片描述

Excel 中如何运行 VBA 代码?

一般来说,运行 VBA 有以下 3 种方法:

  • 从「开发工具」选项卡运行在这里插入图片描述
  • 通过给「形状」指定宏的方式运行
    插入一个形状,选择形状,右键指定宏(可以给任何形状指定宏):
    在这里插入图片描述 3. 通过给「按钮」指定宏的方式运行
    找到开发工具→插入命令,点击插入命令,从列表中选择「表单控件→按钮」,击按钮,这时出现一个宏列表。其中选择想要指定的宏,点击确定,完成指定宏(可以点击运行)。在这里插入图片描述

VBA 变量、类型、运算符

VBA 变量基础教程(VBA 核心概念)

变量定义

声明变量使用以下语法:

vba">Dim [变量名] As [数据类型]

VBA 中规定,变量命名需要符合以下条件,否则程序出错。

  • 首字母必须以字母开头。
  • 不能包含空格、.(英文句号)、!(感叹号)、@、&、$、# 等字符。
  • 长度不能超过 255 个字符。
  • 不能使用VBA 中保存的关键词作为变量名。

在实际开发过程,建议按驼峰法命名。驼峰法是一种很多编程语言通用的命名规则,优点是可读性高、易于理解。
骆驼式命名法就是当变量名或函数名是由一个或多个单词连结在一起,而构成的唯一识别字时,第一个单词以小写字母开始;从第二个单词开始以后的每个单词的首字母都采用大写字母。
例如:myFirstName、myLastName,这样的变量名看上去就像骆驼峰一样此起彼伏,故得名。

数据类型

VBA 中的数据类型主要分为三大类,一个是数字类型,一个是非数字类型,一个是通用类型。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
例子(命名及赋值):

vba">Dim name As String
name = "张三"

Range("A1") = name

VBA 常量基础教程(基础概念)

声明常量:

vba">Const [常量名] As [数据类型] = [值]

常量的命名和类型与变量相同,下面看一个例子:
现在看一个实例,将 π 的值作为一个常量声明,在后续的过程中,直接使用 Pi 作为 π 的值参与计算。

vba">Sub MyCode()

    '声明 π 常量
    Const Pi As Double = 3.14159
    '声明半径 r 和周长 C 变量
    Dim r As Double
    Dim C As Double
    '从单元格 A1 读取半径值
    r = Range("A1").Value
    '计算周长
    C = 2 * Pi * r
    
    MsgBox "周长为:" & C

End Sub

在这里插入图片描述

VBA 运算符基础教程(加减乘除+高级操作)

首先是最基础的,赋值运算符 ( = )。
在这里插入图片描述在这里插入图片描述在这里插入图片描述

VBA 数据类型基础教程(程序更高效、更精准)

VBA 也提供多种文本函数,可直接在程序中使用,包括:

Format:格式化数据,并以文本类型返回
InStr:返回指定字符的位置
InStrRev:反方向返回指定字符位置
Left:返回左侧指定长度文本
Len:返回文本长度
LCase:大写字母转换成小写字母
LTrim:清除开头的空格
Mid:返回指定的开始和结束位置之间的文本
Replace:替换文本中的指定字符
Right:返回右侧指定长度文本
RTrim:清除末尾处的空格
Space:返回指定重复数的空格文本
StrComp:返回比较两个文本的结果
StrConv:将文本转换成指定格式
String:返回指定重复数的文本
StrReverse:逆转提供的字符串
Trim:清除开头和结尾处的空格
UCase:将小写字母转换成大写字母

参考链接: 懒人Excel


http://www.niftyadmin.cn/n/5081028.html

相关文章

uniapp云打包app使用sqlite实现本地缓存,以及云打包sqlite不生效踩坑记录

文章目录 一、uniapp中使用sqlite1.什么是sqlite2.如何在uniapp中使用sqlite 二、云打包sqlite的坑1. sqlite模块找不到2. 勾选了模块,打包之后sqlite不生效。1. 可能是db文件的存储路径问题,具体如下:2. 可能没有自动创建库文件3. 在onload钩…

SpringMVC源码分析(一)启动流程分析

a、SpringMVC 在启动过程中主要做了什么事情&#xff1f; SpringMVC在启动过程中是什么时候解析web.xml文件的&#xff0c;又是什么时候初始化9大内置对象的&#xff1f; <?xml version"1.0" encoding"UTF-8"?> <web-app xmlns"http://xml…

STM32:GPIO模拟SPI驱动ADS8361

ADS8361是TI公司开发的一款模拟量输入芯片。ADS8361有四种工作模式&#xff0c;本文主要针对模式三进行通信驱动。官方方案使用两路SPI来通信&#xff0c;一路SPI Master&#xff0c;一路SPI Slave。我在使用STM32主控芯片的两路SPI进行通信的时候&#xff0c;发现只有SPI Mast…

【06】基础知识:typescript中的泛型

一、泛型的定义 在软件开发中&#xff0c;我们不仅要创建一致的定义良好的API&#xff0c;同时也要考虑可重用性。 组件不仅能支持当前数据类型&#xff0c;同时也能支持未来的数据类型&#xff0c;这在创建大型系统时提供了十分灵活的功能。 在像 C# 和 Java 这样的语言中&…

【算法挨揍日记】day13—— DP34 【模板】前缀和、DP35 【模板】二维前缀和

DP34 【模板】前缀和 【模板】前缀和_牛客题霸_牛客网 题目描述&#xff1a; 给定一个长度为n的数组. 接下来有q次查询, 每次查询有两个参数l, r. 对于每个询问, 请输出 输入描述: 第一行包含两个整数n和q.第二行包含n个整数, 表示.接下来q行,每行包含两个整数 l和r. …

CY7C68013A芯片与FPGA

文章目录 环境软件环境其它工具 USB基础USB2.0设备组成USB设备模型USB设备分层USB Host Controller 主机控制器分类 USB HostUSB2.0 数据帧USB传输事务传输类型 芯片 cypress CY7C68013开发包安装FX3 固件程序设计步骤 驱动程序设计计算机上层应用软件USB2.0 FPGAUSB基础资料官…

redis 外部访问 --chatGPT

问&#xff1a;redis 设置 外部可以访问 gpt: 要使 Redis 可以从外部访问&#xff0c;您需要编辑 Redis 的配置文件&#xff0c;并确保 Redis 绑定到服务器的公共IP地址或使用0.0.0.0监听所有可用的网络接口。请按照以下步骤操作&#xff1a; 1. 打开 Redis 配置文件&#x…

业务系统防病毒?进来听我说

​ 随着物联网技术和互联网技术的日益发展&#xff0c;勒索病毒、工控安全、产线作业都面领着极大的威胁。智慧互联正在成为各个行业未来的发展方向&#xff0c;智慧互联包括物联网、万物互联&#xff0c;机器与机器&#xff0c;工业控制体系&#xff0c;信息化&#xff0c;也…