EXCEL跨文件查询,指定条件列,返回满足条件的指定列
EXCEL跨文件查询,指定条件列,返回满足条件的指定列
Private Sub cmd_find_from_workbooks_Click()
Dim S_Cols As String, thePath As String, Sor_Col As Integer, sz_Cols As Variant
S_Cols = T_jieguo_cols.Text
sz_Cols = Split(S_Cols, ",")
thePath = T_path.Text
Sor_Col = T_Search_Col_No.Text
InsertColumnToRightByIndex T_Search_Col_No.Text, UBound(sz_Cols) + 1 '右侧插入列Sub_FindFromWorkbooks Sor_Col, T_Search_ROW_Str.Text, thePath, S_ColsEnd SubSub Sub_FindFromWorkbooks(ByVal Sor_Col As Integer, ByVal str_ROW As Integer, ByVal mubiao_Path As String, ByVal return_Cols As String)'跨文件查询数据Dim SourceWorkbook As WorkbookDim TargetWorkbook As WorkbookDim SourceSheet As WorksheetDim TargetSheets As Object, TargetSheet As ObjectDim FoundRange As RangeDim SearchValue As String, SearchPath As StringDim rng As RangeDim cell As RangeDim last_Row_No As LongDim sz_Cols As VariantDim i%, j%, i_s$' 设置源工作簿和工作表Set SourceWorkbook = ThisWorkbook ' 当前打开的工作簿Set SourceSheet = SourceWorkbook.ActiveSheet ' 源工作表' 设置目标工作簿和工作表'SearchPath = "F:\F\20240529-贝达项目\001-清单\001-02-弱电清单\搜索网线标签.xls"SearchPath = mubiao_PathSet TargetWorkbook = Workbooks.Open(SearchPath)last_Row_No = SourceSheet.UsedRange.Rows.Count + SourceSheet.UsedRange.Row - 1 '最后一行sz_Cols = Split(return_Cols, ",")For i = str_ROW To last_Row_Noi_s = SourceSheet.Cells(i, Sor_Col).Value' 设置要搜索的值SearchValue = i_s ' 获取搜索值Set TargetSheets = TargetWorkbook.Worksheets' 遍历目标工作簿中的所有工作表For Each TargetSheet In TargetSheets' 遍历工作表中的所有单元格Set rng = TargetSheet.UsedRangeFor Each cell In rngIf InStr(1, cell.Value, SearchValue, vbTextCompare) > 0 And InStr(1, TargetSheet.Name, "内容", vbTextCompare) > 0 Then' 如果找到了匹配项,则输出旁边的单元格值'MsgBox "Found in " & TargetSheet.Name & ": " & cell.Offset(0, 1).Value'MsgBox TargetSheet.NameFor j = LBound(sz_Cols) To UBound(sz_Cols)'输出sheet名称,和所需要的列的内容。Select Case jCase Is = 0SourceSheet.Cells(i, Sor_Col + j + 1).Value = TargetSheet.Name & "--" & cell.Row - 1Case ElseSourceSheet.Cells(i, Sor_Col + j + 1).Value = cell.ValueEnd SelectNext jExit For ' 可选:如果只需要找到第一个匹配项End IfNext cellNext TargetSheetNext i' 关闭目标工作簿(可选)TargetWorkbook.Close SaveChanges:=False
End SubSub GetLastRowUsedRange()
'获得有效行数Dim ws As WorksheetSet ws = ThisWorkbook.ActiveSheetDim lastRowUsedRange As LonglastRowUsedRange = ws.UsedRange.Rows.Count + ws.UsedRange.Row - 1 ' UsedRange的Row属性给出的是范围的第一行的行号MsgBox "The last row with data in the used range is: " & lastRowUsedRange
End Sub
VBA的其他方法,查询表中的某列,符号某列的值,返回其他列的值;
Sub ZhiJia()' 声明变量Dim ws As WorksheetDim wsSupport As WorksheetDim Col_Valve As IntegerDim Col_ZhiJia As IntegerDim Col_Result As IntegerDim STR_ROW As LongDim END_ROW As LongDim i As LongDim j As LongDim ZHIJIA_NAME As StringDim N As LongDim ALL_Rows As LongDim valve As StringDim valveData() As VariantDim supportCounts As ObjectDim key As VariantDim value As VariantDim result As StringDim firstItem As BooleanDim outputColumn As IntegerDim modelColumn As IntegerDim modelResult As StringDim firstModelItem As Boolean' 设置工作表(假设是当前活动的工作表)Set ws = ActiveSheetSet wsSupport = ThisWorkbook.Sheets("支架型号") ' 假设“支架型号”工作表名为“支架型号”' 定义阀门位号和支架编号所在的列号Col_Valve = 2 ' 第2列是所有阀门位号Col_ZhiJia = 6 ' 第6列是支架编号' 从用户输入获取阀门位号所在的列号COL_VALVE1 = InputBox("请输入需要被检索的阀门位号所在的列号:")outputColumn = COL_VALVE1 + 1 ' 输出结果的列号modelColumn = outputColumn + 1 ' 模型结果的列号' 获取开始和结束行数STR_ROW = 2 ' 开始行END_ROW = 1000 ' 结束行' 查找数据区域内的总行数ALL_Rows = ws.Cells(Rows.Count, Col_Valve).End(xlUp).Row' 创建一个字典来存储支架编号及其对应的计数Set supportCounts = CreateObject("Scripting.Dictionary")' 读取第2列的所有数据到一个数组中ReDim valveData(1 To ALL_Rows)For N = 1 To ALL_RowsvalveData(N) = ws.Cells(N, Col_Valve).valueNext N' 循环遍历指定范围内的每一行For i = STR_ROW To END_ROWvalve = ws.Cells(i, CInt(COL_VALVE1)).value' 检查阀门位号是否与给定的阀门匹配For N = 1 To ALL_RowsZHIJIA_NAME = ws.Cells(N, Col_ZhiJia).valueIf valveData(N) = valve And ZHIJIA_NAME <> "" Then' 更新字典中的计数If Not supportCounts.Exists(ZHIJIA_NAME) ThensupportCounts.Add ZHIJIA_NAME, 1ElsesupportCounts(ZHIJIA_NAME) = supportCounts(ZHIJIA_NAME) + 1End IfEnd IfNext N' 构建结果字符串result = ""firstItem = TrueFor Each key In supportCounts.Keysvalue = supportCounts(key)' 添加分隔符If Not firstItem Thenresult = result & "+"ElsefirstItem = FalseEnd If' 添加支架编号和数量result = result & key & "*" & valueNext key' 清空字典以便下一次使用'supportCounts.RemoveAll' 将结果写入表格ws.Cells(i, outputColumn).value = result' 查询模型并构建新的结果字符串modelResult = ""firstModelItem = TrueFor Each key In supportCounts.Keysvalue = supportCounts(key)' 在“支架型号”工作表中查找对应的模型Dim model As RangeSet model = wsSupport.Range("A:A").Find(What:=key, LookIn:=xlValues, LookAt:=xlWhole)If Not model Is Nothing ThenDim modelValue As StringmodelValue = model.Offset(0, 2).value ' 假设模型位于找到的单元格的右侧' 添加分隔符If Not firstModelItem ThenmodelResult = modelResult & "+"ElsefirstModelItem = FalseEnd If' 添加模型编号和数量modelResult = modelResult & modelValue & "*" & valueEnd IfNext key' 将模型结果写入表格ws.Cells(i, modelColumn).value = modelResultsupportCounts.RemoveAllNext i' 清理Set supportCounts = NothingEnd Sub
相关文章:
EXCEL跨文件查询,指定条件列,返回满足条件的指定列
EXCEL跨文件查询,指定条件列,返回满足条件的指定列 Private Sub cmd_find_from_workbooks_Click() Dim S_Cols As String, thePath As String, Sor_Col As Integer, sz_Cols As Variant S_Cols T_jieguo_cols.Text sz_Cols Split(S_Cols, ",&quo…...
[数据集][目标检测]流水线物件检测数据集VOC+YOLO格式9255张26类别
数据集格式:Pascal VOC格式YOLO格式(不包含分割路径的txt文件,仅仅包含jpg图片以及对应的VOC格式xml文件和yolo格式txt文件) 图片数量(jpg文件个数):9255 标注数量(xml文件个数):9255 标注数量(txt文件个数):9255 标注…...
StarRocks 存算分离 Compaction 原理
前言 StarRocks 中每次数据摄入都会生成一个新的数据版本,而查询时需要将所有版本数据进行合并才能获得一个正确的结果,如果历史数据版本太多,那么查询时需要读取的文件数也会很多,造成查询效率低下。因而 StarRocks 存在内部任务…...
搭建ELK日志采集与分析系统
SpringCloud微服务实战——企业级开发框架 💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您…...
java集合中自动排序的treeset和treemap
底层 TreeSet 和 TreeMap 的底层架构都是基于红黑树实现的。红黑树是一种自平衡的二叉搜索树,其特性保证了插入、删除和查找操作的时间复杂度为 (O( log n \log n logn)),无论数据量多大,操作性能都能保持在合理的范围内。 1. 红黑树概述 红黑树是一种平衡二叉搜索树(…...
Android 修改SystemUI 音量条的声音进度条样式
一、前言 Android System UI 开发经常会遇到修改音量进度条样式的需求,主要涉及的类有VolumeDialogImpl与xml文件,接下来会逐步实现流程。先看看效果。 修改前 修改后 二、找到对应类 通过aidegen 打断点调试对应代码类VolumeDialogImpl定位到volume_d…...
电商场景的视频生成的prompt测评集合
1.收集的一些提示词 一台写着Vidu的赛车在路上飞驰,赛车上面坐着一只乌龟 一个宇航员在太空中骑单车 两个巨大的机器人在打架,电影风格,史诗感,高细节 在科幻电影风格中,两个巨大的机器人在城市废墟中激烈战斗。使用高角度俯拍,展现机器人的宏伟和战斗的史诗感。机器人…...
day34
1 非阻塞型IO 让我们的read函数不再阻塞,无论是否读取到消息,立刻返回 1.1 fcntl函数 原型:int fcntl(int fd, int cmd, ... /* arg */ ); 调用:int flag fcntl(描述符,F_GETFL) fcntl(描述符,F_SETFL&am…...
无缝融入,即刻智能[三]:Dify-LLM平台知识库构建(多路召回、精排重排),43K+星标见证专属智能方案
无缝融入,即刻智能[三]:Dify-LLM平台知识库构建(多路召回、精排重排),43K+星标见证专属智能方案 大语言模型的训练数据一般基于公开的数据,且每一次训练需要消耗大量算力,这意味着模型的知识一般不会包含私有领域的知识,同时在公开知识领域存在一定的滞后性。为了解决这一…...
AWS服务WAF
在 AWS 中使用 Web Application Firewall (WAF) 来防御常见的攻击手段,如 DDoS 攻击和 SQL 注入攻击,可以通过创建和配置规则来实现。下面是如何使用 AWS WAF 阻止这些常见攻击的详细操作步骤。 1. 登录到 AWS 管理控制台 打开 AWS 管理控制台。使用你…...
二叉树中的奇偶树问题
目录 一题目: 二思路汇总: 1.二叉树层序遍历: 1.1题目介绍: 1.2 解答代码(c版): 1.3 解答代码(c版): 1.4 小结一下: 2.奇偶树分析…...
GD - EmbeddedBuilder - 用DMA进行串口发送接收,支持接收不定长包
文章目录 GD - EmbeddedBuilder - 用DMA进行串口发送接收,支持接收不定长包概述笔记硬件连接图形化配置485EN的配置串口的图形化配置 代码实现main.cgd32f3x0_hal_it.cgd32f3x0_hal_init.cgd32f3x0_hal_init.hgd32f3x0_hal_it.hgd32f3x0_libopt.h 备注END GD - Embe…...
英语中apartment(公寓)(美式)、house(房子)、flat(公寓)(英式)、villa(别墅)、room(房间)区别
文章目录 英语中apartment、house、flat、villa、room区别 英语中apartment、house、flat、villa、room区别 在英语中,“apartment”、“house”、“flat”、“villa”、和 “room” 这些词语都与居住空间有关,但它们各自的含义和用途有所不同ÿ…...
黑马头条vue2.0项目实战(十一)——功能优化(组件缓存、响应拦截器、路由跳转与权限管理)
1. 组件缓存 1.1 介绍 先来看一个问题? 从首页切换到我的,再从我的回到首页,我们发现首页重新渲染原来的状态没有了。 首先,这是正常的状态,并非问题,路由在切换的时候会销毁切出去的页面组件ÿ…...
《AI视频类工具之一—— 即创》
一.简介 官网:即创 - 一站式智能创意生产与管理平台 即创是字节跳动(现更名为抖音集团)旗下的一款一站式智能创意生产与管理平台,旨在帮助用户高效地进行创意内容的生成、管理和分析。 二.功能介绍 视频创作: 智能成片:利用AI技术自动编辑视频片段,快速生成完整的视频…...
CSS的:host伪类:精确定位于Web组件的指南
随着Web组件技术的发展,自定义元素(Custom Elements)已经成为现代Web开发中不可或缺的一部分。CSS的:host伪类为Web组件的样式封装提供了一种强大的工具,它允许开发者为自定义Web组件的宿主元素定义样式。本文将详细介绍:host伪类…...
安卓sdk manager下载安装
安卓sdk下载安装 android SDK manager下载 环境变量配置 ANDROID_HOME:D:\Android %ANDROID_HOME%\tools %ANDROID_HOME%\platform-tools %ANDROID_HOME%\build-tools\29.0.3Android SDK Platform-tools公用开发工具包,需要下载 Android SDK Tools基础…...
CV学习笔记3-图像特征提取
图像特征提取是计算机视觉中的一个关键步骤,其目标是从图像中提取有意义的特征,以便进行进一步的分析或任务,如分类、检测、分割等。特征提取可以帮助减少数据的维度,同时保留重要的信息。以下是常见的图像特征提取方法和技术&…...
Git使用方法(三)---简洁版上传git代码
1 默认已经装了sshWindows下安装SSH详细介绍-CSDN博客 2 配置链接github的SSH秘钥 1 我的.ssh路径 2 进入路径cd .ssh 文件 3 生成密钥对 ssh-keygen -t rsa -b 4096 (-t 秘钥类型 -b 生成大小) 输入完会出现 Enter file in which to save the key (/c/Users/Administrator/…...
8.21-部署eleme项目
1.设置主从从mysql57服务器 (1)配置主数据库 [rootmsater_5 ~]# systemctl stop firewalld[rootmsater_5 ~]# setenforce 0[rootmsater_5 ~]# systemctl disable firewalldRemoved symlink /etc/systemd/system/multi-user.target.wants/firewalld.serv…...
零代码也能做游戏?用UE5蓝图系统10分钟做个会转的潜艇(附完整资产包)
零代码游戏开发:用UE5蓝图10分钟打造动态潜艇 当第一次打开虚幻引擎5时,许多初学者会被其庞大的功能体系所震撼——从影视级的光照系统到数百万面的高精度模型渲染,这款引擎几乎能实现任何你能想象到的视觉效果。但更令人惊喜的是,…...
数字电路小白也能懂:用Logisim搞定LED计数电路,从真值表到封装测试保姆级教程
数字电路零基础实战:用Logisim构建LED计数器的完整指南 从困惑到清晰:为什么选择Logisim作为数字电路入门工具 第一次接触数字电路时,面对密密麻麻的逻辑门和抽象的真值表,大多数初学者都会感到无从下手。传统教材中复杂的公式推导…...
冒险岛WZ文件解析:从数据迷宫到资源宝库的完整指南
冒险岛WZ文件解析:从数据迷宫到资源宝库的完整指南 【免费下载链接】WzComparerR2 Maplestory online Extractor 项目地址: https://gitcode.com/gh_mirrors/wz/WzComparerR2 你是否曾经好奇冒险岛游戏中那些精美的角色装备、华丽的地图场景和丰富的UI界面是…...
2025届学术党必备的五大AI写作工具实际效果
Ai论文网站排名(开题报告、文献综述、降aigc率、降重综合对比) TOP1. 千笔AI TOP2. aipasspaper TOP3. 清北论文 TOP4. 豆包 TOP5. kimi TOP6. deepseek 到了2026年,人工智能生成内容也就是AIGC技术,已经深入渗透到内容创作…...
TCN实战避坑指南:从能源预测案例看超参数(kernel_size, dilation_base)怎么调才有效
TCN实战避坑指南:从能源预测案例看超参数调优的艺术 当你的TCN模型在能源预测任务中表现平平,先别急着换架构——很可能只是超参数没调对。上周我们团队刚用TCN完成了一个工业用电量预测项目,原始模型准确率只有72%,经过系统调参后…...
【AI大模型】Transformer 架构是什么?关键模块都有哪些
【AI大模型】Transformer 架构是什么?关键模块都有哪些? Transformer 出自 2017 年经典论文 Attention Is All You Need,它完全抛弃 RNN 结构,仅靠注意力 前馈网络实现序列建模,是现在 GPT、BERT、ViT、T5 等所有大模…...
为Claude Code配置Taotoken解决API密钥不稳定与Token不足问题
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 为Claude Code配置Taotoken解决API密钥不稳定与Token不足问题 应用场景类,许多开发者使用Claude Code作为编程助手但常…...
单元幕墙组装检验标准
单元幕墙组装检验标准 1 范围 本标准规定了沈阳远大企业集团单元幕墙组装的检验项目、检验方法、检验工具、质量评定方法。 本标准适用于单元幕墙板块的组装检验。 2 规范性引用文件 下列文件中的条款通过本标准的引用而成为本标准的条款,凡是注日期的引用文件,其随后所…...
二供泵站设备全生命周期管理系统方案
在城镇居民二次供水管理体系中,泵房分散于各小区及大型建筑,管理部门长期面临“监管盲区、故障滞后、运维成本高”的突出矛盾。由于缺乏统一的远程监控手段,水泵运行状态、进出水压力、水箱液位、变频器参数等关键数据无法实时获取࿰…...
深度解析网易游戏NPK文件解包:从二进制迷宫到资源提取的完整实战指南
深度解析网易游戏NPK文件解包:从二进制迷宫到资源提取的完整实战指南 【免费下载链接】unnpk 解包网易游戏NeoX引擎NPK文件,如阴阳师、魔法禁书目录。 项目地址: https://gitcode.com/gh_mirrors/un/unnpk 你是否曾经好奇网易热门游戏如《阴阳师》…...
