excel VBA 基础教程

news2025/1/12 17:34:50

这里写目录标题

  • 快捷键
    • 选择所有有内容的地方
  • 调试
  • VBA
  • 录制宏,打开VBA开发工具
    • 录制宏,相当于excel自动写代码(两个表格内容完全一致才可以)
  • 查看宏代码
  • 保持含有宏程序的文件xlsm后缀(注意很容易有病毒)
    • 宏文件安全设置
  • 使用相对引用宏录制
    • 代码格式设置
    • 相对引用(选择没有定死)
  • 通过表单控制宏运行
  • 快速访问工具栏
  • 保存宏到个人宏工作簿
  • VBE 开发环境
    • 工具栏
    • 工程窗口
    • 模块和工作表
    • 插入模块、移除(把代码专门保存,在不同文件中使用)
    • 窗口切换
  • 编写第一个代码
  • 变量
  • 案例 CurrentRegion Syntax
  • Counting the Rows and Columns in the Current Region
  • Clearing the Current Region
  • Assigning the Current Region to a Variable
  • Get the Start and End Cells in the Current Region
    • 不同文档
  • 语法

————————————————

最近要用到excel 发现好多不会的,折腾了半天,发现还是要系统学习一下。
文件全部来自:宏与VBA

VBA语法

VBA教程

VBA代码
activesheet.UsedRange

个人建议,先看上面视频教程,然后再看语法,然后操作一下就会了,大概一天时间。

快捷键

选择所有有内容的地方

选中左上角第一个表格单元,然后Ctrl +A 选中内容
!——单精度浮点数 1个感叹号,所以是单精度。
#——双精度浮点数 二横二竖,所以是双精度。

$——字符串型 外形像极了S,所以是String,文字型么

&——长整型 外形像L的花体字,所以是Long,长整型么。

@——货币型 这个好说,一般也这么用的。 @=Price么。

%——整型 百分比符号,百来个整数,当然非integer整数型莫属了。

调试

在这里插入图片描述

VBA

Note:
宏程序不可撤销(Ctrl+Z也不行)
宏就是一个程序,可以录制

在这里插入图片描述

录制宏,打开VBA开发工具

在这里插入图片描述
然后就有了开发工具
在这里插入图片描述

录制宏,相当于excel自动写代码(两个表格内容完全一致才可以)

1)打开宏
2) 填充宏名字,说明,以及快捷键(可以不设置)
3)操作表格进行录制
4)结束录制
5)在其它文件执行宏
在这里插入图片描述

查看宏代码

1)打开VB
2)打开工程管理器
3)通过±来看内容
4)Microsoft Excel 工作簿中当前内容
5)模块,双击,能看到当前宏的代码
6)可以通过ALt + F11快速切换
在这里插入图片描述

保持含有宏程序的文件xlsm后缀(注意很容易有病毒)

1)常规文件xlsx,会丢失宏
2) 宏程序文件,后缀名比较特殊(xlsm)
3)再次打开启用宏
4)如果禁用了,关闭后再次打开
在这里插入图片描述
在这里插入图片描述

宏文件安全设置

1)指定一个路径设置为信任路径,每次打开不用设置宏
在这里插入图片描述
在这里插入图片描述
受信任位置
在这里插入图片描述

使用相对引用宏录制

代码格式设置

在这里插入图片描述

相对引用(选择没有定死)

比如隔行变色,相对于当前的位置
下面代码关键点是offset(2,0
1)使用相对引用
2)宏录制
3)操作
4)结束
5)重复执行宏
a)选中一个单元格
b)执行宏
在这里插入图片描述

通过表单控制宏运行

快捷键和上面的执行比较麻烦,可以通过【控件】执行,很方便(没搞懂)
在这里插入图片描述

快速访问工具栏

1) 选项-》然后如下设置
(没跑通,待定)
在这里插入图片描述

保存宏到个人宏工作簿

1)录制宏
2) 个人宏工作簿保存至【当前】
3)个人宏工作簿
4)从打开的文档中可以找到,在其它文档中引用
在这里插入图片描述
引用宏,别的文档中的宏引用到目前文档,前提是另外的文档要打开
在这里插入图片描述
如何把宏单独保存
在这里插入图片描述
可以看到
在这里插入图片描述
查看宏保存在哪里,如下就可以看到啦,实际藏了一个隐形的文件,反之可以隐藏
![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/b22ca4360094431da10c2989c914b541.png在这里插入图片描述
这样就可以在其它的文档中用这个宏了,这个相当于设置了全局的宏,跨文档运行。

VBE 开发环境

工具栏

在这里插入图片描述

工程窗口

在这里插入图片描述

模块和工作表

录制宏就在模块中
可以针对表1来进行操作
在这里插入图片描述

插入模块、移除(把代码专门保存,在不同文件中使用)

在这里插入图片描述
移除,保存bas
在这里插入图片描述
导入模块
在这里插入图片描述

窗口切换

最大化
在这里插入图片描述
选择其它窗口
在这里插入图片描述
水平、垂直窗口
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

编写第一个代码

1)插入模块
2)编写代码

Sub namexx()
'卡住一个窗口
	MsgBox "This is my first VBA code"
End Sub

效果如下:
在这里插入图片描述

变量

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

地址:https://docs.microsoft.com/zh-cn/office/vba/language/reference/functions-visual-basic-for-applications
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

案例 CurrentRegion Syntax

CurrentRegion返回活动单元格所在的周围由空行和空列组成的单元格区域(即通常所说的当前区域),该区域为活动单元格附近不为空的单元格范围,该范围截止区域为空行、空列,以示例说话
https://blog.csdn.net/weixin_43721369/article/details/92063448
其中“E11”是一个固定的
在这里插入图片描述

Sub FindCurrentRegion()
   Dim rng As Range
'set the range to be Cell E11
   Set rng = Range("E11")
'select the current region
   rng.CurrentRegion.Select
End Sub

Counting the Rows and Columns in the Current Region

在这里插入图片描述

Sub FindCurrentRegion()
   Dim rng As Range
   Dim iRw As Integer
   Dim iCol As Integer
'set the range
   Set rng = Range("E11")
'count the rows
   iRw = rng.CurrentRegion.Rows.Count
'count the columns
   iCol = rng.CurrentRegion.Columns.Count
'show the result in a message box
   MsgBox ("We have " & iRw & " rows and " & iCol & " columns in our current region")
End Sub

Clearing the Current Region

在这里插入图片描述

Sub ClearCurrentRegion()
   Dim rng As Range
'set the range
   Set rng = Range("E11")
   rng.CurrentRegion.Clear
End Sub

Assigning the Current Region to a Variable

Sub AssignCurrentRegionToVariable()
   Dim rng As Range
'set the range to be the current region of E11
   Set rng = Range("E11").CurrentRegion
'color the background and text
   rng.Interior.Pattern = xlSolid
   rng.Interior.Color = 65535
   rng.Font.Bold = True
   rng.Font.Color = -16776961
End Sub

在这里插入图片描述

Get the Start and End Cells in the Current Region

Sub GetStartAndEndCells()
   Dim rng As Range
   Dim iRw As Integer
   Dim iCol As Integer
   Dim iColStart, iColEnd, iRwStart, iRwEnd As String
'set the range variable to be the current region of E11
   Set rng = Range("E11").CurrentRegion
'set the start column for the range
   iColStart = rng.Column
'get the end column for the range
   iColEnd = iColStart + (rng.Columns.Count - 1)
'get the start row for the range
   iRwStart = rng.Row
'get the end row for the range
   iRwEnd = iRwStart + (rng.Rows.Count - 1)
'display the address of the start and end rows and columns in a message box
   MsgBox ("The Range start at " & Cells(iRwStart, iColStart).Address & " and ends at " & Cells(iRwEnd, iColEnd).Address)
End Sub

在这里插入图片描述

不同文档

在这里插入图片描述

语法

典型程序
在这里插入图片描述

sub-End Sub

开始结束

Sub test_1_VA()
' test_1_VA 宏
' 实验内容
End Sub

1)注释用单撇号
2)选择 Rows(“2:2”).Select
3)ActiveCell活动单元格
4)ActiveCell.Offset(2, 0)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2275582.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

获取IP地区

包 https://packagist.org/packages/geoip2/geoip2#v3.1.0 用composer加载包 composer require geoip2/geoip2 mmdb下载 https://github.com/P3TERX/GeoLite.mmdb?tabreadme-ov-file

嵌入式系统Linux实时化(二)Xenomai技术框架分析

Xenomai 是 Linux 内核的一个实时开发框架。它希望通过无缝地集成到Linux 环境中来给用户空间应用程序提供全面的、与接口无关的硬实时性能。Xenomai 项目始于2001年8月,作为一个自由软件项目,完全遵守GNU/Linux自由软件协议。2003 年它和RTAI项目合并推…

Docker Desktop 构建java8基础镜像jdk安装配置失效解决

Docker Desktop 构建java8基础镜像jdk安装配置失效解决 文章目录 1.问题2.解决方法3.总结 1.问题 之前的好几篇文章中分享了在Linux(centOs上)和windows10上使用docker和docker Desktop环境构建java8的最小jre基础镜像,前几天我使用Docker Desktop环境重新构建了一个…

【LeetCode】:删除回文子数组【困难】

class Solution { public:// 思考:能否用滚动数组进行优化int minimumMoves(vector<int>& arr) {// 定义状态dp[i][j]为i-j的最小步数int n arr.size();vector<vector<int>> dp(n, vector<int>(n, 1e9 7));// 可以把这 1 次理解为一种 最小操作单…

如何理解机器学习中的线性模型 ?

在机器学习中&#xff0c;线性模型是一类重要且基础的模型&#xff0c;它假设目标变量&#xff08;输出&#xff09;是输入变量&#xff08;特征&#xff09;的线性组合。线性模型的核心思想是通过优化模型的参数&#xff0c;使模型能够捕捉输入与输出之间的线性关系。以下是线…

golang常用标准库

输入与输出-fmt包时间与日期-time包命令行参数解析-flag包日志-log包IO操作-os包IO操作-bufio包与ioutil包strconv包模板-template包http包contextjson/xmlreflect反射官方标准库 输入与输出-fmt包 输入与输出 常用输出函数 Print、Printf、Println&#xff1a;直接输出内容 Sp…

STM32 I2C硬件配置库函数

单片机学习&#xff01; 目录 前言 一、I2C_DeInit函数 二、I2C_Init函数 三、I2C_StructInit函数 四、I2C_Cmd函数 五、I2C_GenerateSTART函数 六、I2C_GenerateSTOP函数 七、I2C_AcknowledgeConfig函数 八、I2C_SendData函数 九、I2C_ReceiveData函数 十、I2C_Sen…

sys.dm_exec_connections:查询与 SQL Server 实例建立的连接有关的信息以及每个连接的详细信息(客户端ip)

文章目录 引言I 基于dm_exec_connections查询客户端ip权限物理联接时间范围dm_exec_connections表see also: 监视SQL Server 内存使用量资源信号灯 DMV sys.dm_exec_query_resource_semaphores( 确定查询执行内存的等待)引言 查询历史数据库客户端ip应用场景: 安全分析缺乏…

plane开源的自托管项目

Plane 是一个开源的自托管项目规划解决方案&#xff0c;专注于问题管理、里程碑跟踪以及产品路线图的设计。作为一款开源软件&#xff0c;Plane 的代码托管在 GitHub 平台上&#xff0c;允许任何人查看和贡献代码。它为用户提供了便捷的项目创建与管理手段&#xff0c;并配备了…

高光谱相机的特点

光谱特性 高光谱分辨率&#xff1a;能将光谱范围分割成极窄的波段&#xff0c;光谱分辨率通常达到纳米级甚至亚纳米级&#xff0c;可精确捕捉到不同物质在细微光谱差异上的特征&#xff0c;比如可以区分不同种类的植被因叶绿素含量等差异而在光谱上的细微变化。 多波段探测&a…

1.两数之和--力扣

给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同的元素。 你可以按任意顺序返回答案。 示例 1…

yolov5+colab跑起来

教程1.先上传网盘再run 教程2.直接上传解压run 本人过程

el-tree拖拽光标错位问题

背景&#xff1a;el-tree实现的分类树增加拖拽功能后&#xff0c;当分类树由于数量较多产生滚动条&#xff0c;如果分类树已滚动&#xff0c;进行拖拽时会造成光标错位的问题: 原因&#xff1a;el-tree拖拽光标定位的高度并未加上滚动的高度解决&#xff1a;将滚动的样式属性放…

Copula算法原理和R语言股市收益率相依性可视化分析

阅读全文&#xff1a;http://tecdat.cn/?p6193 copula是将多变量分布函数与其边缘分布函数耦合的函数&#xff0c;通常称为边缘。在本视频中&#xff0c;我们通过可视化的方式直观地介绍了Copula函数&#xff0c;并通过R软件应用于金融时间序列数据来理解它&#xff08;点击文…

OpenCV计算机视觉 07 图像的模块匹配

在做目标检测、图像识别时&#xff0c;我们经常用到模板匹配&#xff0c;以确定模板在输入图像中的可能位置 API函数 cv2.matchTemplate(image, templ, method, resultNone, maskNone) 参数含义&#xff1a; image&#xff1a;待搜索图像 templ&#xff1a;模板图像 method&…

相加交互效应函数发布—适用于逻辑回归、cox回归、glmm模型、gee模型

在统计分析中交互作用是指某因素的作用随其他因素水平变化而变化&#xff0c;两因素共同作用不等于两因素单独作用之和(相加交互作用)或之积(相乘交互作用)。相互作用的评估是尺度相关的&#xff1a;乘法或加法。乘法尺度上的相互作用意味着两次暴露的综合效应大于&#xff08;…

深入解析 Flink 与 Spark 的性能差异

&#x1f496; 欢迎来到我的博客&#xff01; 非常高兴能在这里与您相遇。在这里&#xff0c;您不仅能获得有趣的技术分享&#xff0c;还能感受到轻松愉快的氛围。无论您是编程新手&#xff0c;还是资深开发者&#xff0c;都能在这里找到属于您的知识宝藏&#xff0c;学习和成长…

工厂人员定位管理系统方案(二)人员精确定位系统架构设计,适用于工厂智能管理

哈喽~这里是维小帮&#xff0c;提供多个场所的定位管理方案&#xff0c;如需获取工厂人员定位管理系统解决方案可前往文章最下方获取&#xff0c;如有项目合作及技术交流欢迎私信我们哦~撒花 在上一篇文章中&#xff0c;我们初步探讨了工厂人员定位管理系统的需求背景以及定位方…

Wi-Fi Direct (P2P)原理及功能介绍

目录 Wi-Fi Direct &#xff08;P2P&#xff09;介绍Wi-Fi Direct P2P 概述P2P-GO&#xff08;P2P Group Owner&#xff09;工作流程 wifi-Direct使用windows11 wifi-directOpenwrtwifi的concurrent mode Linux环境下的配置工具必联wifi芯片P2P支持REF Wi-Fi Direct &#xff…

Linux第二课:LinuxC高级 学习记录day01

0、大纲 0.1、Linux 软件安装&#xff0c;用户管理&#xff0c;进程管理&#xff0c;shell 命令&#xff0c;硬链接和软连接&#xff0c;解压和压缩&#xff0c;功能性语句&#xff0c;结构性语句&#xff0c;分文件&#xff0c;make工具&#xff0c;shell脚本 0.2、C高级 …