VBA 常用函数片段

参考资料

  1. 跟着孙兴华学习Excel VBA 第一季

👉以下所有VBA代码,都来自参考资料中的B站课程。
👉所有整理皆为学习VBA,仅做笔记之用。


目录

  • 一. 批量创建sheet页
  • 二. 批量删除当前sheet页之外的所有sheet
  • 三. 获取所有sheet页的名称
  • 四. 删除指定工作表


一. 批量创建sheet页

  • VBA代码所在sheet页的A1单元格为标题,A2,A3,A4等单元格的内容为要新建sheet页的名称
  • shtActive.Cells(Rows.Count, 1).End(xlUp).Row
    • Rows.Count:返回工作表的总行数,1 表示第一列。这样可以确保我们在整个第1列中寻找最后一个单元格。
    • .End(xlUp):在当前单元格所在列中向上查找并返回第一个非空单元格的方法。对于第1列来说,它会从底部开始向上查找,直到找到第一个非空单元格。
    • .Row:返回找到的单元格所在的行号。
Sub CreatSht()Dim shtActive As Worksheet, sht As WorksheetDim i As Long, strShtName As String' 当代码出错时继续运行On Error Resume NextSet shtActive = ActiveSheet' 单元格A1是标题,跳过,从第2行开始遍历sheet页名称For i = 2 To shtActive.Cells(Rows.Count, 1).End(xlUp).Row' sheet页对象强制转换为字符串类型strShtName = shtActive.Cells(i, 1).Value' 根据sheet名称获取sheet对象(若不存在该sheet名称的话,会报错,然后被 If Err Then 捕获)Set sht = Sheets(strShtName)' 如果代码出错,说明不存在工作表Sheet,然后就新建If Err Then' 新建一个sheet页,位置放在所有已存在sheet页的后面Worksheets.Add , Sheets(Sheets.Count)' 新建的sheet必然是活动的sheet,为之命名ActiveSheet.Name = strShtName' 清除错误状态Err.ClearEnd IfNext' 重新激活原sheetshtActive.Activate
End Sub

二. 批量删除当前sheet页之外的所有sheet

  • On Error Resume Next:VBA 中用于错误处理的语句,当发生运行时错误时,忽略错误并继续执行下一行代码,而不是中断程序并显示错误消息。
Sub DelShet() ' 删除所有工作表Dim sht As Worksheet' 关屏幕刷新Application.ScreenUpdating = False' 关警告信息Application.DisplayAlerts = False On Error Resume NextFor Each sht In Worksheets' 遍历删除sheetsht.Delete NextApplication.ScreenUpdating = TrueApplication.DisplayAlerts = TrueEnd Sub

三. 获取所有sheet页的名称

在VBA中,RangeCells 是用于引用 Excel 工作表单元格的两种不同方式

  • 引用方式
    • RangeRange("A1")Range("A1:B10") 表示范围引用。
    • CellsCells(row, column),表示行号和列号,Cells(1, 1) 表示第 1 行第 1 列的单元格。
  • 特性
    • Range: 可以用来引用任何范围,包括单个单元格、多个单元格、整行、整列或具有特定命名的范围。
    • Cells: 主要用于引用单个单元格,可以通过行号和列号准确地指定单元格的位置。
Sub GetShtByVba()Dim sht As Worksheet, k As LongApplication.ScreenUpdating = Falsek = 1' 清空a列和b列的数据Range("A:B").Clear' 设置a列的单元格格式为文本Range("A:A").NumberFormat = "@"' 遍历各sheet对象,获取sheet页名称For Each sht In Worksheets' 行自增长(从A2单元格开始)k = k + 1' 将sheet页名称放入单元格内(A1单元格,A2单元格,A3单元格...)Cells(k, 1) = sht.NameNext' 设置A1单元格的内容Range("A1") = Array("工作表名")Application.ScreenUpdating = TrueEnd Sub

四. 删除指定工作表

  • Dim a1CurrentRegion:在 VBA 中,变量可以是弱类型或者强类型的。变量 a1CurrentRegion 没有明确指定数据类型,因此它被认为是 Variant 类型的变量。
    Variant 类型是一种通用的数据类型,可以存储各种类型的数据,包括数字、文本、日期、数组等。
  • UBound():VBA 中的一个函数,用于返回数组的最大索引值。
Sub DelShtByVba()Dim sht As WorksheetDim i As Long' A1单元格所在的区域的数据对象Dim a1CurrentRegionApplication.ScreenUpdating = FalseApplication.DisplayAlerts = False' VBA 中用于错误处理的语句,当发生运行时错误时,忽略错误并继续执行下一行代码,而不是中断程序并显示错误消息。On Error Resume Next' Range("A1").CurrentRegion 是 VBA 中用于获取包含指定单元格的当前区域的方法。' 返回一个表示当前区域的 Range 对象,该区域由指定单元格所在的连续区域组成' 这个连续区域包括所有具有数据的相邻单元格。a1CurrentRegion = Range("a1").CurrentRegion ' 遍历并删除工作表For i = 2 To UBound(a1CurrentRegion)' 如果i行,第2列的值为删除的话If a1CurrentRegion(i, 2) = "删除" Then ' 删除i行第1列所对应的sheet页	Worksheets(CStr(a1CurrentRegion(i, 1))).DeleteEnd IfNextApplication.ScreenUpdating = TrueApplication.DisplayAlerts = TrueEnd Sub

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

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

相关文章

【C语言】深入了解文件:简明指南

🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 🌈C笔记专栏: C笔记 🌈喜欢的诗句:无人扶我青云志 我自踏雪至山巅 文章目录 一、文件的概念1.1 文件名:1.2 程序文件和数据文件 二、数据文…

可靠的Mac照片恢复解决方案

当您在搜索引擎搜索中输入“Mac照片恢复”时,您将获得数以万计的结果。有很多Mac照片恢复解决方案声称他们可以在Mac OS下恢复丢失的照片。但是,并非互联网上的所有Mac照片恢复解决方案都可以解决您的照片丢失问题。而且您不应该花太多时间寻找可靠的Mac…

4月27日,上海Sui Meetup回顾与展望

活动吸引了超过200名报名者,其中的100多位技术爱好者亲临现场,一同见证了这一精彩时刻。 在这场为技术爱好者和开发者打造的盛会中,嘉宾们带来了内容丰富、见解独到的分享。 Sui 生态的活力与创新得到了充分展现。 在这场技术与创新的盛会…

2024-04-30 区块链-加密数字货币-法律风险-分析

摘要: 2024-04-30 区块链-加密数字货币之法律政策分析 加密数字货币之法律政策分析 加密数字货币(英文:Cryptocurrency,常常用复数Cryptocurrencies,又译密码货币,密码学货币)是一种使用密码学原理来确保交…

C# 读去Word文档(NPOI)

NPOI.dll文件下载: 百度网盘 请输入提取码 NPOI介绍: NPOI可以在没有安装Office的情况下对Word或Excel文档进行读写操作。 NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目。 实现的操作: 获取Word文档所有Sheet表格。 读…

【C语言】自定义数据类型

建议学完指针再学 为什么要有自定义数据类型? 基本数据类型不能满足我们在编程中的要求时,需要自己定义一些数据类型使用。 结构体 如果我们想存储单个数据,可以直接用数组存储;那么如果我们想存储多个数据呢? 比…

74、堆-数组中的第K个最大元素

思路&#xff1a; 直接排序是可以的&#xff0c;但是时间复杂度不符合。可以使用优先队列&#xff0c;代码如下&#xff1a; class Solution {public int findKthLargest(int[] nums, int k) {if (numsnull||nums.length0||k<0||k>nums.length){return Integer.MAX_VAL…

CST电磁仿真局部网格设置与仿真结构不参与仿真设置【基础教程】

局部网格设置 使用Local Mesh功能在特定结构&#xff08;区域&#xff09;设置网格 Simulation > Mesh > Local Mesh Properties 仿真模型的构成部件尺寸和复杂度是非常多样的&#xff0c;如果以最复杂的部分为准来划分网格不复杂的部分也会生成非常稠密的网格&#x…

如何判断嵌入式平台OpenCV在使用硬件编解码器?

01 涉及OpenCV编解码库的一个命令行工具 python3 -c import cv2; print(cv2.getBuildInformation()) 它可以打印输出详细的OpenCV编译参数和当前的媒体库相关参数&#xff0c;我的rk3588打印的信息是这样的&#xff1a; catlubancat:~$ python3 -c import cv2; print(cv2.getBu…

全面解析Unity至Unreal的项目迁移流程

引言 在游戏开发领域&#xff0c;Unity和Unreal Engine都是顶尖的选择&#xff0c;各自带有独特的优势。对于追求更高图形质量和更强大物理模拟的开发团队而言&#xff0c;将项目从Unity迁移到Unreal可能是一个值得考虑的选择。本文将详细介绍整个迁移流程&#xff0c;帮助开发…

[Java、Android面试]_24_Compose为什么绘制要比XML快?(高频问答)

欢迎查看合集&#xff1a; Java、Android面试高频系列文章合集 本人今年参加了很多面试&#xff0c;也有幸拿到了一些大厂的offer&#xff0c;整理了众多面试资料&#xff0c;后续还会分享众多面试资料。 整理成了面试系列&#xff0c;由于时间有限&#xff0c;每天整理一点&am…

Linux操作系统·进程管理

一、什么是进程 1.作业和进程的概念 Linux是一个多用户多任务的操作系统。多用户是指多个用户可以在同一时间使用计算机系统&#xff1b;多任务是指Linux可以同时执行几个任务&#xff0c;它可以在还未执行完一个任务时又执行另一项任务。为了完成这些任务&#xff0c;系统上…

数据库锁介绍

目录 1.数据库锁 事务的隔离级别 读未提交&#xff08;Read Uncommitted&#xff09; 读已提交&#xff08;Read Committed&#xff09; 可重复读&#xff08;Repeatable Read&#xff09; 串行化&#xff08;Serializable&#xff09; 幻读和不可重复读区别 2.Mysql中有…

Android binder死亡通知机制

在Andorid 的binder系统中&#xff0c;当Bn端由于种种原因死亡时&#xff0c;需要通知Bp端&#xff0c;Bp端感知Bn端死亡后&#xff0c;做相应的处理。 使用 Bp需要先注册一个死亡通知&#xff0c;当Bn端死亡时&#xff0c;回调到Bp端。 1&#xff0c;java代码注册死亡通知 …

【webrtc】MessageHandler 9: 基于线程的消息处理:执行Port销毁自己

Port::Port 构造的时候,就触发了一个异步操作,但是这个操作是要在 thread 里执行的,因此要通过post 消息 MSG_DESTROY_IF_DEAD 到thread跑:port的创建并米有要求在thread中 但是port的析构却在thread里 这是为啥呢?

豆瓣9.7,这部Java神作第3版重磅上市!

Java 程序员们开年就有重磅好消息&#xff0c;《Effective Java 中文版&#xff08;原书第 3 版&#xff09;》要上市啦&#xff01; 该书的第1版出版于 2001 年&#xff0c;当时就在业界流传开来&#xff0c;受到广泛赞誉。时至今日&#xff0c;已热销近20年&#xff0c;本书第…

自然语言处理(NLP)简介

自然语言处理&#xff08;NLP&#xff09;技术是一种使用计算机处理和理解自然语言的技术。以下是一些NLP技术的例子&#xff1a; 机器翻译&#xff1a;NLP可以用于自动翻译一种语言到另一种语言。例如&#xff0c;Google Translate使用NLP技术来将文本从一种语言翻译成另一种语…

三维SDMTSP:GWO灰狼优化算法求解三维单仓库多旅行商问题,可以更改数据集和起点(MATLAB代码)

一、单仓库多旅行商问题 多旅行商问题&#xff08;Multiple Traveling Salesman Problem, MTSP&#xff09;是著名的旅行商问题&#xff08;Traveling Salesman Problem, TSP&#xff09;的延伸&#xff0c;多旅行商问题定义为&#xff1a;给定一个&#x1d45b;座城市的城市集…

CST Studio初级教程 五

本课程将实例讲解CST 3D建模。CST 3D 建模有三个途径&#xff1a;一种方法是用Brick、Sphere、Cone、Torus、Cylinder、Bond Wire指令绘制实体。第二种方法是用Extrude Face、Rotate Face、loft在已有模型基础上生成实体。第三种方法是&#xff0c;先用2D绘图指令绘制Curves&am…

Cross-Origin Read Blocking (CORB)

Cross-Origin Read Blocking (CORB) 是一种安全机制&#xff0c;用于保护Web应用免受跨域读取攻击。 跨域读取攻击可能会导致网站上的敏感信息被恶意代码访问和读取。这种攻击方式通常利用浏览器对不同源的资源访问的限制进行绕过。 CORB通过在浏览器中引入一种新的安全检测机…