当前位置: 首页 > news >正文

WPS宏实现表格合并功能

把文件夹中N个表格Sheet1页的数据合并成一个新的表格

function 合并表格() {
    //合并文件为C盘下面名为test的文件夹
    var folderPath = "C:\\test";
    var fileName = Dir(folderPath +"\\*.*");
    
    if(fileName == ""){
        alert("文件为空,无法执行");
    }
        
    //创建合并表格,如果合并文件存在会报错,这里没做校验删除
    var newWork = Workbooks.Add();
    
    while(fileName != ""){
        
        // 打开工作簿
        var workBook = Workbooks.Open(folderPath + "\\" + fileName);
        
        // 执行复制代码
        //默认合并每个表格的Sheet1页
        var lastCol = workBook.Worksheets("Sheet1").Cells(1, workBook.Worksheets("Sheet1").Columns.Count).End(xlToLeft).Column;
        var lastRow = workBook.Worksheets("Sheet1").Cells(workBook.Worksheets("Sheet1").Rows.Count,1).End(xlUp).Row;
        
        //获取合并页的有多少行
        var startRow = newWork.Worksheets("Sheet1").Cells(newWork.Worksheets("Sheet1").Rows.Count,1).End(xlUp).Row;
        
        //开始复制
        workBook.Worksheets("Sheet1").Range(Cells(1,1),Cells(lastRow,lastCol)).Copy(newWork.Worksheets("Sheet1").Cells(startRow+1, 1));
        
        // 关闭工作簿
        workBook.Close(true);
        
        // 获取下一个文件,Dir()方法不给任何参数,默认去找下一个匹配的文件
        fileName = Dir();
    }
    
    //删除多余的首行
    newWork.Worksheets("Sheet1").Range("A1").EntireRow.Delete();
    
    //保存合并表格至原文件夹
    newWork.SaveAs(folderPath+"\\"+"合并表格"+".xlsx");
    
    //关闭表格
    alert("合并完成,合并表格与要合并的表格同目录下");
    newWork.Close(true);
}

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Excel的使用总结2
  • 网络抓包测试
  • 一文了解机器学习顶会ICML 2024的研究热点
  • Excel技巧(一)
  • 周边乡村游小程序的设计
  • 波导阵列天线单元 学习笔记3 基于空气填充双模馈网的双圆极化膜片天线阵列
  • CSS 图像拼合技术
  • 编译 onigmo 库
  • QEMU/KVM 虚拟机显卡透传 (vfio-pci)
  • Springcloud从零开始---Service业务模块(三)
  • windows11 安装 Rancher Desktop
  • vue.config 基础代理配置
  • 操作系统中的锁:自旋锁、互斥锁、条件变量、信号量、死锁
  • 以FLV解复用为例详解开源库FFmpeg中解复用器的源码逻辑及处理流程
  • 浅谈【网络编程】之Unix与多路复用
  • php的引用
  • [js高手之路]搞清楚面向对象,必须要理解对象在创建过程中的内存表示
  • Android优雅地处理按钮重复点击
  • Effective Java 笔记(一)
  • ES6 ...操作符
  • go append函数以及写入
  • js数组之filter
  • Median of Two Sorted Arrays
  • MySQL主从复制读写分离及奇怪的问题
  • PAT A1120
  • Redis提升并发能力 | 从0开始构建SpringCloud微服务(2)
  • 嵌入式文件系统
  • 使用 @font-face
  • 限制Java线程池运行线程以及等待线程数量的策略
  • 一个JAVA程序员成长之路分享
  •  一套莫尔斯电报听写、翻译系统
  • 在GitHub多个账号上使用不同的SSH的配置方法
  • 交换综合实验一
  • 微龛半导体获数千万Pre-A轮融资,投资方为国中创投 ...
  • ​【C语言】长篇详解,字符系列篇3-----strstr,strtok,strerror字符串函数的使用【图文详解​】
  • # Redis 入门到精通(九)-- 主从复制(1)
  • #14vue3生成表单并跳转到外部地址的方式
  • #Datawhale X 李宏毅苹果书 AI夏令营#3.13.2局部极小值与鞍点批量和动量
  • #我与Java虚拟机的故事#连载07:我放弃了对JVM的进一步学习
  • ()、[]、{}、(())、[[]]等各种括号的使用
  • ()、[]、{}、(())、[[]]命令替换
  • (70min)字节暑假实习二面(已挂)
  • (C语言)strcpy与strcpy详解,与模拟实现
  • (Redis使用系列) Springboot 使用redis实现接口Api限流 十
  • (Windows环境)FFMPEG编译,包含编译x264以及x265
  • (带教程)商业版SEO关键词按天计费系统:关键词排名优化、代理服务、手机自适应及搭建教程
  • (面试必看!)锁策略
  • .axf 转化 .bin文件 的方法
  • .mysql secret在哪_MySQL如何使用索引
  • .NET C# 使用GDAL读取FileGDB要素类
  • .NET Framework与.NET Framework SDK有什么不同?
  • .net 调用海康SDK以及常见的坑解释
  • .NET 反射的使用
  • .net 生成二级域名
  • .NET 中什么样的类是可使用 await 异步等待的?