Word·VBA文档合并

目录

    • 1,复制法,不保留原文档格式
    • 2,复制法,保留原文档格式
    • 3,插入法,保留原文档格式

之前的文章《Word·VBA实现邮件合并》虽然可以生成邮件合并文档结果,但是不能像《python实现word邮件合并》一样,最终所有结果合并为1个文档,那么只能用vba实现文档合并功能

  • 以下代码在Word启用宏的文档中运行

1,复制法,不保留原文档格式

Range.InsertAfter 方法只能插入文本,因此合并结果不保留原文档格式

Sub 合并文档_复制法()'合并文件夹中所有doc*文档,并保存文档至该文件夹;但不保留原文档格式Dim file_path$, file_name$, docx As Document, f As Document
'--------------------参数填写:file_path = "E:\测试\docx\结果\"  '文件夹file_name = Dir(file_path & "*.doc*"): tm = TimerSet docx = Documents.Add    '新建文档,合并文档Application.ScreenUpdating = False  '关闭屏幕更新,加快程序运行Do While file_name <> ""Set f = Documents.Open(file_path & file_name)docx.Content.InsertAfter f.Content  '将文档内容复制到合并文档末尾f.Close (False)file_name = Dir  '下一个文件名Loopdocx.SaveAs FileName:=file_path & "合并文档.docx"  '保存docx.CloseApplication.ScreenUpdating = TrueDebug.Print "文件夹文档合并完成,用时:" & Format(Timer - tm, "0.00")  '耗时
End Sub
  • 合并结果
    在这里插入图片描述

2,复制法,保留原文档格式

rng.Paste偶尔运行报错,原因未知

Sub 合并文档_复制法2()'合并文件夹中所有doc*文档,并保存文档至该文件夹;保留原文档格式Dim file_path$, file_name$, docx As Document, f As Document, rng As Range
'--------------------参数填写:file_path = "E:\测试\docx\结果\"  '文件夹file_name = Dir(file_path & "*.doc*"): tm = TimerSet docx = Documents.Add    '新建文档,合并文档Application.ScreenUpdating = False  '关闭屏幕更新,加快程序运行Do While file_name <> ""Set f = Documents.Open(file_path & file_name)Set rng = f.Content: rng.CopySet rng = docx.Contentrng.Collapse Direction:=wdCollapseEnd  '结束位置rng.Paste: rng.InsertAfter Chr(12)     '粘贴,并插入换页符f.Close (False)file_name = Dir  '下一个文件名Loopdocx.SaveAs FileName:=file_path & "合并文档.docx"  '保存docx.CloseApplication.ScreenUpdating = TrueDebug.Print "文件夹文档合并完成,用时:" & Format(Timer - tm, "0.00")  '耗时
End Sub
  • 合并结果
    在这里插入图片描述

3,插入法,保留原文档格式

Selection.InsertFile 方法插入指定文件

Sub 合并文档_插入法()'合并文件夹中所有doc*文档,并保存文档至该文件夹;保留原文档格式Dim file_path$, file_name$, docx As Document
'--------------------参数填写:file_path = "E:\测试\docx\结果\"  '文件夹file_name = Dir(file_path & "*.doc*"): tm = TimerSet docx = Documents.Add    '新建文档,合并文档Application.ScreenUpdating = False  '关闭屏幕更新,加快程序运行Do While file_name <> ""Selection.InsertFile FileName:=file_path & file_name, Link:=False  '所有文档Selection.InsertBreak Type:=wdPageBreak  '插入换页符file_name = Dir  '下一个文件名Loopdocx.SaveAs FileName:=file_path & "合并文档.docx"  '保存docx.CloseApplication.ScreenUpdating = TrueDebug.Print "文件夹文档合并完成,用时:" & Format(Timer - tm, "0.00")  '耗时
End Sub
  • 合并结果:与方法2一致
  • 3种方法对比
文档合并方法1方法2方法3
耗时秒数4.415.480.61
  • 方法3不但生成结果与方法2一致,而且代码运行速度快数倍

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

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

相关文章

用户账号和组账号及管理

用户账号和组账号 Linux中每个用户是通过 User Id &#xff08;UID&#xff09;来唯一标识的 新建用户 1-60000 自动分配 0-65535 端口号&#xff0c;系统是靠uid来区分用户身份的&#xff0c;用户的uid 为0 就是超级管理员 1.用户账号的类型 超级管理员:权限最高的用户,roo…

基于单片机PID炉温自动控制系统设计

**单片机设计介绍&#xff0c;基于单片机PID炉温自动控制系统设计 文章目录 一 概要二、功能设计三、 软件设计原理图 五、 程序六、 文章目录 一 概要 基于单片机PID炉温自动控制系统设计是一个综合性的工程任务&#xff0c;旨在通过单片机结合PID控制算法实现炉温的精确和自…

Django源码之路由匹配(下)——图解逐步分析底层源码

目录 1. 前言 2. 路由匹配全过程分析 2.1 请求的入口 2.2 request的封装 2.3 response的源头 2.4 handler的获取 2.5 获取resolver对象 2.6 路由进行匹配 3. 小结 1. 前言 在上一篇文章中&#xff0c;我们谈到了路由的定义&#xff0c;通过URLPattern路由路径对象和Rou…

(一)小案例银行家应用程序-介绍

案例示例如下所示&#xff1a; 登录之后就会出现下面所示&#xff1a; 项目案例流程图如下 ● 首先我们建立四个账号对象&#xff0c;用于登录 const account1 {owner: ItShare,movements: [200, 450, -400, 3000, -650, -130, 70, 1300],interestRate: 1.2, // %pin: 11…

注意力机制篇 | YOLOv8改进之添加多尺度全局注意力机制DilateFormer(MSDA)| 即插即用

前言:Hello大家好,我是小哥谈。多尺度全局注意力机制DilateFormer是一种用图像识别任务的深度学习模型。它是在Transformer模型的基础上进行改进的,旨在提高模型对图像中不同尺度信息的感知能力。DilateFormer引入了多尺度卷积和全局注意力机制来实现多尺度感知。具体来说,…

Rancher介绍

1.什么是Rancher Rancher是一套容器管理平台&#xff0c;专门用于部署和管理容器化应用。以下是关于Rancher的详细介绍&#xff1a; 容器编排与管理&#xff1a;Rancher是一个开源的企业级容器管理平台&#xff0c;它支持Kubernetes作为其容器编排引擎。Rancher可以帮助用户在…

java线程的几种状态

目录 正文&#xff1a; 1.JConsole 2.新建状态(New) 3.运行状态(Runnable) 4.阻塞状态(Blocked) 5.等待状态(Waiting) 6.计时等待状态(Timed Waiting) 7.终止状态(Terminated) 总结&#xff1a; 正文&#xff1a; 1.JConsole JConsole是Java监控和管理控制台工具&…

ABAP 读取EXCEL 文件内容,函数 TEXT_CONVERT_XLS_TO_SAP

EXCEL 内容: 读取内容: 代码: TYPES: BEGIN OF ITAB, FL1(50) TYPE C, FL2(50) TYPE C, FL3(50) TYPE C, FL4(50) TYPE C, FL5(50) TYPE C, FL6(50) TYPE C, END OF ITAB. DATA: T_ITEM TYPE TABLE OF ITAB WITH HEADER LINE. TYPE…

Netty经典32连问

文章目录 1、Netty是什么&#xff0c;它的主要特点是什么&#xff1f;2、Netty 应用场景了解么&#xff1f;3、Netty 核心组件有哪些&#xff1f;分别有什么作用&#xff1f;4、Netty的线程模型是怎样的&#xff1f;如何优化性能&#xff1f;5、EventloopGroup了解么?和 Event…

PWM方式读取AS5600磁编码器数据

PWM方式读取AS5600磁编码器获取角度例程 &#x1f4cd;相关篇《STM32 软件I2C方式读取AS5600磁编码器获取角度例程》&#x1f4cc;《HAL STM32 硬件I2C方式读取AS5600磁编码器获取角度例程》&#x1f389;本例程包含&#xff1a;Arduino测试代码、STM32标准库代码、HAL STM32代…

Mac删除软件,动一动手指,几秒就彻底删除 mac删除软件删不掉的解决方法 mac删除软件后怎么删除软件数据

当你入职新公司&#xff0c;接手前任员工使用的Mac电脑时&#xff0c;很可能会遇到一个非常普遍的问题&#xff1a;电脑中装有大量你不需要的软件。这些软件不仅占用宝贵的硬盘空间&#xff0c;还可能影响电脑的运行速度和效率。为了获得一个干净、清爽的使用体验&#xff0c;删…

Java 关键字 this 使用详解(通俗易懂)

this关键字主要有以下三个地方使用 在方法体中引用当前对象&#xff0c;即其方法被调用的对象&#xff0c;以便将当前对象的实例变量或当前对象作为参数传递给其他方法。 ① t this.x; 要在方法中引用当前对象&#xff0c;可以使用关键字 this。 ② return this; 作为当前…

[java]网络编程

网络编程概述 计算机网络&#xff1a; 把分布在不同地理区域的具有独立功能的计算机,通过通信设备与线路连接起来&#xff0c;由功能完善的软件实现资源共享和信息传递的系统。 Java是 Internet 上的语言&#xff0c;它从语言级上提供了对网络应用程序的支持&#xff0c;程序…

题库管理系统-基于Springboot实现JAVA+SQL离散数学题库管理系统(完整源码+LW+翻译)

基于Springboot实现JAVASQL离散数学题库管理系统(完整源码LW翻译) 概述&#xff1a; 本系统具体完成的功能如下&#xff1a; 1题库的管理与维护&#xff1a;新题的录入&#xff0c;修改&#xff0c;删除等功能。 2生成试卷&#xff1a;包括自动生成与手工改动&#xff0c;要…

使用msf进行有防火墙限制的3389端口转发

使用msf进行有防火墙限制的3389端口转发 这里主要是针对在内网中遇到需要开启3389的时候&#xff0c;发现存在防火墙&#xff0c;就没有办法直接远程连接&#xff0c;这个时候就可以使用端口转发使用msf&#xff0c;使用前记得先初始化&#xff0c;连接好数据库这里先使用msf进…

二.音视频编辑-媒体组合-播放

引言 当涉及到音视频编辑时&#xff0c;媒体资源的提取和组合是至关重要的环节。在iOS平台上&#xff0c;AVFoundation框架提供了丰富而强大的功能&#xff0c;使得媒体资源的操作变得轻松而高效。从原始的媒体中提取片段&#xff0c;然后将它们巧妙地组合成一个完整的作品&am…

51之定时器与中断系统

目录 1.定时器与中断系统简介 1.1中断系统 1.2定时器 1.2.1定时器简介 1.2.2定时器大致原理及其配置 1.2.3定时器所需的所有配置总介 2.定时器0实现LED闪烁 3.使用软件生成定时器初始化程序 1.定时器与中断系统简介 1.1中断系统 首先&#xff0c;我们需要来了解一下什么…

深入浅出 -- 系统架构之单体到分布式架构的演变

一、传统模式的技术改革 在很多年以前&#xff0c;其实没有严格意义上的前后端工程师之分&#xff0c;每个后端就是前端&#xff0c;同理&#xff0c;前端也可以是后端&#xff0c;即Ajax、jQuery技术未盛行前的年代。 起初&#xff0c;大部分前端界面很简单&#xff0c;显示的…

AcWing1402.星空之夜

【题目链接】1402. 星空之夜 - AcWing题库 夜空深处&#xff0c;闪亮的星星以星群的形式出现在人们眼中&#xff0c;形态万千。 一个星群是指一组非空的在水平&#xff0c;垂直或对角线方向相邻的星星的集合。 一个星群不能是一个更大星群的一部分。 星群可能是相似的。 如…

【蓝桥杯】GCD与LCM

一.概述 最大公约数&#xff08;GCD&#xff09;和最小公倍数&#xff08;Least Common Multiple&#xff0c;LCM&#xff09; 在C中&#xff0c;可以使用 std::__gcd(a, b)来计算最大公约数 1.欧几里德算法/辗转相除法 int gcd(int a,int b){return b?gcd(b, a%b):a; } 2…