EXCEL-VB编程实现自动抓取多工作簿多工作表中的单元格数据

news2024/10/6 6:40:15

一、VB编程基础

1、 EXCEL文件启动宏设置

文件-选项-信任中心-信任中心设置-宏设置-启用所有宏

汇总文件保存必须以宏启动工作簿格式类型进行保存

2、 VB编程界面与入门

参考收藏
https://blog.csdn.net/O_MMMM_O/article/details/107260402?spm=1001.2014.3001.5506

二、自动抓取多工作簿多工作表中的单元格数据

1、描述

在同一路径下,有5个EXCEL工作簿,每个工作簿里面有7张工作表sheet,每张sheet里面的固定单元格有同一类型数据;1个EXCEL汇总工作簿,里面有1张工作表sheet,用来汇总抓取的数据内容。
在这里插入图片描述
在这里插入图片描述

2、VB程序

Sub output()
 Application.ScreenUpdating = False
 Dim Mydir As String
 Dim i As Integer
 i = 2
'获取当前工作簿所在路径'
 Mydir = ThisWorkbook.Path & "\"
  'Left(App.Path, 1)是用来返回路径中第一个字母,即盘符 如:C,D,E,chdrive则是改变当前盘'
 ChDrive Left(Mydir, 1)
 
 ChDir Mydir
 '文件名
 Match = Dir$("*.xlsx")
 Do
 If Not LCase(Match) = LCase(ThisWorkbook.Name) Then
 Workbooks.Open Match, True
 '各工作簿的文件名放到汇总表A列
 ThisWorkbook.ActiveSheet.Range("A" & i) = Match
 
 '各工作簿中SHEET1的B2单元格内容放到汇总表B列
 ThisWorkbook.ActiveSheet.Range("B" & i) = ActiveWorkbook.Sheets("sheet1").Range("A4")

 '各工作簿中SHEET2的B2单元格内容放到汇总表B列'
    ThisWorkbook.ActiveSheet.Range("D" & i) = ActiveWorkbook.Sheets("Sheet2").Range("B2")
    
    ThisWorkbook.ActiveSheet.Range("E" & i) = ActiveWorkbook.Sheets("Sheet2").Range("C2")
 ActiveWorkbook.Close 0
 i = i + 1
 End If
 Match = Dir$
 Loop Until Len(Match) = 0
 Application.ScreenUpdating = True
End Sub

如果需要采集SHEET1其他单元格数据,可以继续添加代码:

ThisWorkbook.ActiveSheet.Range("F" & i) = ActiveWorkbook.Sheets("Sheet1").Range("D3")

如果需要采集SHEET2其他单元格数据,可以继续添加代码:

ThisWorkbook.ActiveSheet.Range("F" & i) = ActiveWorkbook.Sheets("Sheet2").Range("D3")

如果工作簿的工作表、单元格和目标单元格有规律,可以用循环语句解决。

3、效果

在这里插入图片描述

附录

Sub find()

    Application.ScreenUpdating = False
    Dim Mydir As String
    Dim i As Integer
    i = 2
    
    '获取当前VBA所在Excel的路径'
    
    Mydir = ThisWorkbook.Path & "\"
    
    'Left(App.Path, 1)是用来返回路径中第一个字母,即盘符 如:C,D,E,chdrive则是改变当前盘'
    
    ChDrive Left(Mydir, 1)
    
    
    
    ChDir Mydir
    Match = Dir$("*.xls")
    Do
    If Not LCase(Match) = LCase(ThisWorkbook.Name) Then
    Workbooks.Open Match, 0, 1
    '文件名放到汇总表A列'
    ThisWorkbook.ActiveSheet.Range("A" & i) = Match
    
    '各工作簿中SHEET1的B2单元格内容放到汇总表B列'
    ThisWorkbook.ActiveSheet.Range("B" & i) = ActiveWorkbook.Sheets("Sheet1").Range("B2")
    
    ThisWorkbook.ActiveSheet.Range("C" & i) = ActiveWorkbook.Sheets("Sheet1").Range("C2")
     
     '各工作簿中SHEET2的B2单元格内容放到汇总表B列'
    ThisWorkbook.ActiveSheet.Range("D" & i) = ActiveWorkbook.Sheets("Sheet2").Range("B2")
    
    ThisWorkbook.ActiveSheet.Range("E" & i) = ActiveWorkbook.Sheets("Sheet2").Range("C2")
    ActiveWorkbook.Close 0
    i = i + 1
    End If
    Match = Dir$
    Loop Until Len(Match) = 0
    Application.ScreenUpdating = True
End Sub

在这里插入图片描述

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

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

相关文章

用Vue仿了一个类似抖音的App

大家好,我是 Java陈序员。 今天,给大家介绍一个基于 Vue3 实现的高仿抖音开源项目。 关注微信公众号:【Java陈序员】,获取开源项目分享、AI副业分享、超200本经典计算机电子书籍等。 项目介绍 douyin —— 一个基于 Vue、Vite 实…

解决uCharts图表在微信小程序层级过高问题

uniapp微信小程图表层级过高问题? 项目中涉及 uCharts图表,在 App/H5端均正常使用,微信小程序 存在层级问题! 文章目录 uniapp微信小程图表层级过高问题?效果图遇到问题解决方案 啰嗦一下~,自己的粗心 在实…

Firefox 关键词高亮插件的简单实现

目录 1、配置 manifest.json 文件 2、编写侧边栏结构 3、查找关键词并高亮的方法 3-1) 如果直接使用 innerHTML 进行替换 4、清除关键词高亮 5、页面脚本代码 6、参考 1、配置 manifest.json 文件 {"manifest_version": 2,"name": &quo…

HDLbits 刷题 --Always nolatches

学习: Your circuit has one 16-bit input, and four outputs. Build this circuit that recognizes these four scancodes and asserts the correct output. To avoid creating latches, all outputs must be assigned a value in all possible conditions (See also always…

内存管理是如何影响系统的性能的

大家好,今天给大家介绍内存管理是如何影响系统的性能的,文章末尾附有分享大家一个资料包,差不多150多G。里面学习内容、面经、项目都比较新也比较全!可进群免费领取。 内存管理对系统性能的影响至关重要,主要体现在以下…

课程设计项目3.2:基于振动信号分析的电机轴承故障检测

01.课程设计内容 02.代码效果图 获取代码请关注MATLAB科研小白的个人公众号(即文章下方二维码),并回复:MATLAB课程设计本公众号致力于解决找代码难,写代码怵。各位有什么急需的代码,欢迎后台留言~不定时更新…

Js之运算符与表达式——②

运算符:也叫操作符,是一种符号。通过运算符可以对一个或多个值进行运算,并获取运算结果。 表达式:由数字、运算符、变量的组合(组成的式子)。 表达式最终都会有一个运算结果,我们将这个结果称…

【cache】卡常

来源于《国家集训队2024论文集》中的《论现代硬件上的常数优化》 个人总结: 不要开二的次幂作为维度的数组,否则常数会变大【存疑】。总是保证内存访问连续性更高。比如 st表,把log维放在第二维,会导致内存访问距离最大为N*LOG。…

权限提升技术:攻防实战与技巧

本次活动赠书1本,包邮到家。参与方式:点赞收藏文章即可。获奖者将以私信方式告知。 网络安全已经成为当今社会非常重要的话题,尤其是近几年来,我们目睹了越来越多的网络攻击事件,例如公民个人信息泄露,企业…

Vulnhub:MY FILE SERVER: 1

目录 信息收集 1、arp 2、nmap 3、whatweb WEB web信息收集 dirmap FTP匿名登录 enum4linux smbclient showmount FTP登录 ssh-kegen ssh登录 提权 系统信息收集 脏牛提权 get root 信息收集 1、arp ┌──(root㉿ru)-[~/kali/vulnhub] └─# arp-scan -l I…

信息咨询模块

信息资讯 资讯文章专题、互动评论、自定义多级分类,打造本地新闻圈 简介 本项目旨在打造一个本地新闻资讯平台,为用户提供以下功能: 资讯文章:提供本地新闻、生活、娱乐等各类资讯文章。专题:针对重要事件或热门话…

E4438C安捷伦E4438C信号发生器

181/2461/8938产品概述: Agilent / HP E4438C ESG 矢量信号发生器结合了出色的 RF 性能和复杂的基带生成功能,可在高达 6 GHz 的基带、IF 和 RF 频率上提供经过校准的测试信号。Agilent / HP E4438C ESG 矢量信号发生器提供具有任意波形和实时 I/Q 功能…

波士顿房价预测案例(python scikit-learn)---多元线性回归(多角度实验分析)

波士顿房价预测案例(python scikit-learn)—多元线性回归(多角度实验分析) 这次实验,我们主要从以下几个方面介绍: 一、相关框架介绍 二、数据集介绍 三、实验结果-优化算法对比实验,数据标准化对比实验&#xff0…

输入url到页面显示过程的优化

浏览器架构 线程:操作系统能够进行运算调度的最小单位。 进程:操作系统最核心的就是进程,他是操作系统进行资源分配和调度的基本单位。 一个进程就是一个程序的运行实例。启动一个程序的时候,操作系统会为该程序创建一块内存&a…

​AI大模型:产品经理的新助手,还是捣蛋鬼?

在科技飞速发展的今天,AI大模型成为了许多行业的“新宠儿”。它们不仅在语音识别、图像处理等方面表现出色,甚至还能写代码、写新闻,甚至写需求文档。这让许多产品经理心动不已,心想:有了AI大模型的帮助,岂…

完全没想到docker启动败在了这里!

转载说明:如果您喜欢这篇文章并打算转载它,请私信作者取得授权。感谢您喜爱本文,请文明转载,谢谢。 故事背景 前几天帮同事部署一个环境,用他写的安装脚本部署,其中一台服务器就需要安装docker&#xff0c…

Day43 动态规划 part05

Day43 动态规划 part05 1049.最后一块石头的重量II 我的思路: 提示说和划分两个和相等的子集差不多,猛然想到,这道题不就是划分子集,用sum - 和最大*2 代码就是划分和相同的子集的变形 解答: class Solution {public int last…

jsp实现增删改查——(三)用Echarts图表统计学生信息

学生信息CRUD——Echarts显示生活费 目录结构 创建一个js文件夹,将echarts.min.js放到里面。 功能实现 与之前我们写的jsp文件(含有html代码、Java代码)不同的是,实现Echarts对生活费的显示,需要调用echarts.min.js…

MySQL事务以及并发访问隔离级别

MySQL事务以及并发问题 事务1.什么是事务2.MySQL如何开启事务3.事务提交方式4.事务原理5.事务的四大特性(ACID) 事务并发问题1.并发引起的三个问题2.事务隔离级别 事务 在 MySQL 中,事务支持是在引擎层实现的。MySQL 是一个支持多引擎的系统&…

关于搭建电商独立站跨境电商接入主流电商平台API商品接口对于商品功能模块的巨大应用

功能设计 首先我们来看下mall项目中商品功能的设计,主要包括商品管理、添加\编辑商品、商品分类、商品类型、品牌管理等功能,这里的功能同时涉及前台商城和后台管理系统。 商品管理【接入主流电商平台商品API接口丰富自建商城商品】 在mall项目的后台管…