【EXCEL_VBA_常用过程 函数】

结合日常工作需要,收录或改写相关过程及函数,现共享给大家,希望能对大家有所帮助!

目录

1. 过程

1.1 批量处理框架Application.GetOpenFilename

2. 功能函数

2.1 字符串数组比对 / 两组数据比对是否一致(不要求元素位置意一一对应)

2.2 排序函数(针对字符串数组,进行元素间排序)


1. 过程

1.1 批量处理框架Application.GetOpenFilename

注1:GetOpenFilename:返回完整的文件名路径

' 遍历工作簿
Sub Traverse_Workbook()Dim f(), s As Integerf = Application.GetOpenFilename(fileFilter:="xlsx文件(*.xlsx),*.xlsx",_Title:="选择Excel文件", MultiSelect:=True)' GetOpenFilename在点击“确定”时会返回选中的文件名数组,点击“取消”时会返回一个Boolean型的False
'判断是否是Boolean型(FASLE)就可以判断确定还是取消,选中文件时返回string类型
If TypeName(f) = "Boolean" Then Exit Sub' 打开工作簿
For s = 1 To UBound(f)' 设定当前打开工作簿名称为xlsxBook' 原代码' Workbooks.Open f(s), UpdateLinks:=0 '不更新外部链接' Set xlsxBook = GetObject(f(s))Set xlsxBook = Workbooks.Open f(s), UpdateLinks:=0 '不更新外部链接'循环遍历当前工作簿的各个工作表For startSheetNum = 1 To xlsxBook.Sheets.Count' 设定第startSheetNum个sheet为活动sheetSet Mywantgetsheet = xlsxBook.Worksheets(startSheetNum)Mywantgetsheet.Activate' 重点!!! ' 针对每个活动sheet实现的功能函数写于此处' 下一个sheetNext startSheetNum' 保存及关闭工作簿xlsxBook.SavexlsxBook.Close' 继续打开下一个工作簿
Next' 完成操作,显示"finish"
MsgBox "finish"End Sub

2. 功能函数

2.1 字符串数组比对 / 两组数据比对是否一致(不要求元素位置意一一对应)

Function Compare_Combination(M() As Variant, M_Temp() As Variant, num As Integer)' M() 基准组合,M_Temp() 待比对组合,num 为元素数量'比对结果,默认为True
Dim result As Boolean
result = TrueDim T(), T_Temp() As Variant'高版本EXCEL内置sort函数时可使用
' Sort函数需数组为列存储时方可正确排序(行数据无法正确排序),因此需转置再排序
'T = Excel.Application.WorksheetFunction.Sort(Application.WorksheetFunction.Transpose(M))
'T_Temp = Excel.Application.WorksheetFunction.Sort(Application.WorksheetFunction.Transpose(M_Temp))'内置sort函数对列数据进行排序,因为需改写为(i,1)-i行1列
'Dim i As Integer
'For i = 1 To num
'    If T(i,1) <> T_Temp(i,1) Then
'        result = False
'        Exit For
'    End If
'Next' 低版本EXCEL自主构建sort函数
T = Sort_Array(M)
T_Temp = Sort_Array(M_Temp)Dim i As Integer
For i = 0 To num - 1If T(i) <> T_Temp(i) Thenresult = FalseExit ForEnd If
NextCompare_Combination = resultEnd Function'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''Function Sort_Array(arr() As Variant) As VariantDim i, j As Integer
Dim temp As VariantFor i = LBound(arr) To UBound(arr)For j = i + 1 To UBound(arr)If VBA.StrComp(arr(i), arr(j), vbTextCompare) > 0 Then' 字符顺序由小到大排序temp = arr(i)arr(i) = arr(j)arr(j) = tempEnd IfNext j
Next iSort_Array = arr()End Function

2.2 排序函数(针对字符串数组,进行元素间排序)

Function Sort_Array(arr() As Variant) As VariantDim i, j As Integer
Dim temp As VariantFor i = LBound(arr) To UBound(arr)For j = i + 1 To UBound(arr)If VBA.StrComp(arr(i), arr(j), vbTextCompare) > 0 Then' 字符顺序由小到大排序temp = arr(i)arr(i) = arr(j)arr(j) = tempEnd IfNext j
Next iSort_Array = arr()End Function

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

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

相关文章

服务器硬件基础知识以及如何部署相关应用

服务器硬件是构成服务器物理基础的组件集合&#xff0c;它们共同工作以提供计算服务、数据存储、网络通信等功能。以下是一些关键的服务器硬件基础知识&#xff1a; 1. 处理器&#xff08;CPU&#xff09; 作用&#xff1a;服务器的大脑&#xff0c;负责执行程序指令和处理数…

Redis(十三) 事务

文章目录 前言事务的特性Redis事务的执行原理Redis中使用事务WATCH UNWATCH实现乐观锁 前言 前面我们学习 MySQL 的时候&#xff0c;肯定也学习了事务。事务是什么&#xff1f;给大家举个例子&#xff1a;假如我给朋友微信转账&#xff0c;我给他转了 100 块钱&#xff0c;当我…

【14】bat脚本备份mysql数据

说明 1、请注意windows的bat脚本语法 2、请注意linux和windows的格式 3、请注意时间是个位数的问题 一、参数说明 1、参数说明: setlocal ENABLEDELAYEDEXPANSION 是延迟变量 setlocal和endlocal 是必须要一起用 @echo on 是开启显示,方便调试 :: 注释 cd /d D:\dbbackup …

Golang | Leetcode Golang题解之第114题二叉树展开为链表

题目&#xff1a; 题解&#xff1a; func flatten(root *TreeNode) {curr : rootfor curr ! nil {if curr.Left ! nil {next : curr.Leftpredecessor : nextfor predecessor.Right ! nil {predecessor predecessor.Right}predecessor.Right curr.Rightcurr.Left, curr.Righ…

格式转化——Labelme标注好的json文件批量转为png(标签)文件(物体为红色,背景为黑色)和jpg原图

作用如题目&#xff0c;批量将标注好的json文件转成png标签&#xff0c;jpg原图&#xff0c;其中标签时红黑图。 代码如下&#xff1a; import argparse import base64 import json import os import os.path as osp import imgviz import PIL.Image import yaml from labelm…

Vue3实战笔记(46)—Vue 3高效开发定制化Dashboard的权威手册

文章目录 前言Dashboard开发总结 前言 后台管理系统中的Dashboard是一种图形化的信息显示工具&#xff0c;通常用于提供一个特定领域或系统的概况。它可以帮助用户监控和分析数据&#xff0c;快速获取重要信息。可以帮助用户监控业务状况、分析数据、获取关键信息和管理资源。…

list的模拟实现(一)

嗨喽大家好&#xff0c;时隔许久阿鑫又给大家带来了新的博客&#xff0c;list的模拟实现&#xff08;一&#xff09;&#xff0c;下面让我们开始今天的学习吧&#xff01; list的模拟实现&#xff08;一&#xff09; 1.list splice接口的使用 2.list尾插的实现 3.list的迭代…

Python编程的黑暗魔法:模块与包的神秘力量!

哈喽&#xff0c;我是阿佑&#xff0c;今天给大家讲讲模块与包~ 文章目录 1. 引言1.1 模块化编程的意义1.2 Python中模块与包的概念概述 2. 背景介绍2.1 Python模块系统模块的定义与作用Python标准库简介 2.2 包的结构与目的包的定义与目录结构包在项目组织中的重要性 3. 创建与…

Linux CentOs如何升级openssl

1.获取 OpenSSL 1.1.n 源码 wget https://www.openssl.org/source/openssl-1.1.1n.tar.gz tar -xzf openssl-1.1.1n.tar.gz cd openssl-1.1.1n 2.编译和安装 OpenSSL 1.1.n ./config --prefix/usr/local/openssl-1.1.1n --openssldir/usr/local/openssl-1.1.1n shared zlib m…

【C语言】strstr函数的使用和模拟

前言 今天给大家带来一个字符串函数&#xff0c;strstr()的使用介绍和模拟实现。 模拟实现这个函数&#xff0c;可以帮助我们更深刻地理解这个函数的功能和提高解决字符串相关问题的能力&#xff0c;有兴趣的话就请往下看吧。 strstr函数介绍 函数功能&#xff1a; strstr函…

synchronized什么情况下会释放锁?

synchronized关键字可以用于实现线程之间的同步&#xff0c;它可以修饰方法或代码块&#xff0c;保证在同一时间只有一个线程能够访问被synchronized修饰的代码。 synchronized会在以下情况下释放锁&#xff1a; 代码块执行完毕&#xff1a; 当一个线程执行完了一个被synchro…

Three.js 研究:3、创建一个高科技圆环

打开Alpha混合 修改环形颜色&#xff0c;更改发光的颜色&#xff0c;更改发光的强度为2 更改世界环境灯光

使用 Docker Compose 接管现有容器的文档

前言 在使用 Docker 容器技术时&#xff0c;有时我们可能需要 Docker Compose 来接管并管理已经存在的容器。这通常发生在容器手动启动或由其他部署流程创建后&#xff0c;我们希望利用 Docker Compose 来简化未来的管理任务。 准备工作 在尝试接管现有容器之前&#xff0c;…

如何编辑 PDF 中的文本?4个有效的编辑PDF方法

PDF 文件可以轻松打开和查看&#xff0c;但修改要复杂得多 - 尤其是在 PDF 中的文本编辑方面。 知道如何离线编辑 PDF 中的文本对于任何需要快速更改而无需在线加载文档或担心安全问题的人来说都非常有益。它使用户能够更好地控制他们的文档&#xff0c;并有更广泛的字体和图形…

着急联系媒体投稿发表文章有什么好方法?

作为一名曾经的信息宣传员,我深知在紧张的宣传节点上,急于将精心撰写的文章推向更广阔的读者群体,那种紧迫感和焦虑几乎成了常态。记得那段时间,为了能让稿件得到及时有效的曝光,我不得不亲自踏上了一场寻找媒体联系方式的“马拉松”。那时,我手头的资源有限,仅有的几个联系方式…

JRT1.7发布

JRT1.7连仪器在线演示视频 JRT1.5实现质控主体、1.6基本完成质控&#xff1b;本次版本推进到1.7&#xff0c;1.7集菜单权限、登录、打印导出客户端、初始化、质控、Linux客户端、仪器连接和监控体系各种功能大全&#xff0c;上十年写系统用到的都全了。 这次直接挑战检验最难…

就业信息|基于SprinBoot+vue的就业信息管理系统(源码+数据库+文档)

就业信息管理系统 目录 基于SprinBootvue的就业信息管理系统 一、前言 二、系统设计 三、系统功能设计 1前台功能模块 2后台功能模块 4.2.1管理员功能 4.2.2学生功能 4.2.3企业功能 4.2.4导师功能 四、数据库设计 五、核心代码 六、论文参考 七、最新计算机毕设…

Python3 笔记:模块的导入方式

1、import import 模块名 2、import as import a as b import as的方式其实是实现了两步操作&#xff1a;先将模块导入&#xff0c;再为模块重命名。 3、from import from a import func from import方式是直接导入模块内的函数。 from import *方式将模块中所有的名字…

算法学习-构造

文章目录 相关题目667.优美的排列II481.神奇字符串 构造题会让我们按照一定的规律去构造一个符合条件的结果&#xff0c;其通常是和其他算法结合起来考察的&#xff0c;其中的规律有时候是比较难找的&#xff0c;因此只能对其进行规律总结。 相关题目 667.优美的排列II 参考…

MySql基础(一)--最详细基础入门,看完就懂啦(辛苦整理,想要宝宝的赞和关注嘻嘻)

前言 希望你向太阳一样&#xff0c;有起有落&#xff0c;不失光彩~ 一、数据库概述 1. 什么是数据库 数据库就是存储数据的仓库&#xff0c;其本质是一个文件系统&#xff0c;数据按照特定的格式将数据存储起来&#xff0c;用户可以对数据库中的数据进行增加&#xff0c;修改&…