拷贝多个Excel单元格区域为图片并粘贴到Word

Excel工作表Sheet1中有两个报表,相应单元格区域分别定义名称为Report1Report2,如下图所示。

在这里插入图片描述

现在需要将图片拷贝图片粘贴到新建的Word文档中。

示例代码如下。

Sub Demo()Dim oWordApp As ObjectDim ws As Worksheet: Set ws = ThisWorkbook.Sheets("Sheet1")Dim rRpt1 As Range: Set rRpt1 = ws.Range("Report1")Dim rRpt2 As Range: Set rRpt2 = ws.Range("Report2")On Error Resume NextSet oWordApp = GetObject(Class:="Word.Application")If oWordApp Is Nothing ThenSet oWordApp = CreateObject(Class:="Word.Application")End IfOn Error GoTo 0oWordApp.Visible = TrueDim oDoc As Object: Set oDoc = oWordApp.Documents.AddrRpt1.CopyPicture Appearance:=xlScreen, Format:=xlPictureoDoc.Content.PasteoDoc.Content.InsertParagraphAfterrRpt2.CopyPicture Appearance:=xlScreen, Format:=xlPictureoDoc.Content.InsertParagraphAfteroDoc.Content.Paste' oDoc.SaveAs2 "C:\temp\report.docx"' oDoc.Close' oWordApp.Quit
End Sub

【代码解析】
第3行代码获取工作表对象。
第4~5行代码获取单元格区域Range对象。
第6~11行代码获取Word应用程序对象,如果没有打开的Word应用程序,那么将新建一个。
第12行代码显示Word应用程序(新建的Word应用程序处于隐藏状态)。
第13行代码新建Word文档。
第14行代码将报表1拷贝为图片。
第15行代码在Word文档中粘贴图片。
第16行代码插入段落分隔符。
第17~19行代码使用类似的方法处理报表2。
第20行代码保存新建的Word文档。
第21行代码关闭Word文档。
第22行代码关闭Word应用程序。

运行代码,新建Word文档如下所示,只有报告2,并没有报告1。

在这里插入图片描述

使用单步调试运行代码,发现第15行代码执行之后,Word文档中插入了报表1,但是第19行代码(oDoc.Content.Paste)执行时将文档全部内容替换为报表2,因此报表1从此消失。

找到了问题的根源,那么可以使用如下两个方案解决问题。

    ' 方法1With oDoc.ContentrRpt1.CopyPicture Appearance:=xlScreen, Format:=xlPicture.Paste.InsertParagraphAfterrRpt2.CopyPicture Appearance:=xlScreen, Format:=xlPicture.Characters.Last.PasteEnd With

【代码解析】
oDoc.Content.Characters.Last获取文档中的最后一个字符,报表2图片将粘贴在此位置,避免覆盖已有的文档内容。

    ' 方法2With oDoc.ContentrRpt1.CopyPicture Appearance:=xlScreen, Format:=xlPicture.Paste.InsertParagraphAfteroWordApp.Selection.endKey Unit:=6rRpt2.CopyPicture Appearance:=xlScreen, Format:=xlPictureoWordApp.Selection.PasteEnd With

【代码解析】
第5行代码将Word编辑游标定位到文档末尾,第7行代码使用Selection.Paste粘贴报表2。

运行修改的代码,结果如下图所示。

在这里插入图片描述

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

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

相关文章

Spring是如何传播事务的?什么是事务传播行为

Spring是如何传播事务的? Spring框架通过声明式事务管理来传播事务,主要依赖于AOP(面向切面编程)和事务拦截器来实现。Spring的事务传播机制是基于Java Transaction API (JTA) 或者本地资源管理器(如Hibernate、JDBC等…

Python-pandas-操作Excel文件(读取数据/写入数据)及Excel表格列名操作详细分享

Python-pandas-操作Excel文件(读取数据/写入数据) 提示:帮帮志会陆续更新非常多的IT技术知识,希望分享的内容对您有用。本章分享的是pandas的使用语法。前后每一小节的内容是存在的有:学习and理解的关联性。【帮帮志系列文章】:每…

PHP分页显示数据,在phpMyadmin中添加数据

<?php $conmysqli_connect(localhost,root,,stu); mysqli_query($con,"set names utf8"); //设置字符集为utf8 $sql"select * from teacher"; $resultmysqli_query($con,$sql); $countmysqli_num_rows($result); //记录总条数$count。 $pagesize10;//每…

智能参谋部系统架构和业务场景功能实现

将以一个基于微服务和云原生理念、深度集成人工智能组件、强调实时性与韧性的系统架构为基础,详细阐述如何落地“智能参谋部”的各项能力。这不是一个简单的软件堆叠,而是一个有机整合了数据、知识、模型、流程与人员的复杂体系。 系统愿景:“智能参谋部”——基于AI赋能的…

企业级RAG架构设计:从FAISS索引到HyDE优化的全链路拆解,金融/医疗领域RAG落地案例与避坑指南(附架构图)

本文较长&#xff0c;纯干货&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习内容&#xff0c;尽在聚客AI学院。 一. RAG技术概述 1.1 什么是RAG&#xff1f; RAG&#xff08;Retrieval-Augmented Generation&#xff0c;检索增强生成&#xff09; 是…

Spring Boot Validation实战详解:从入门到自定义规则

目录 一、Spring Boot Validation简介 1.1 什么是spring-boot-starter-validation&#xff1f; 1.2 核心优势 二、快速集成与配置 2.1 添加依赖 2.2 基础配置 三、核心注解详解 3.1 常用校验注解 3.2 嵌套对象校验 四、实战开发步骤 4.1 DTO类定义校验规则 4.2 Cont…

理清缓存穿透、缓存击穿、缓存雪崩、缓存不一致的本质与解决方案

在构建高性能系统中&#xff0c;缓存&#xff08;如Redis&#xff09; 是不可或缺的关键组件&#xff0c;它大幅减轻了数据库压力、加快了响应速度。然而&#xff0c;在高并发环境下&#xff0c;缓存也可能带来一系列棘手的问题&#xff0c;如&#xff1a;缓存穿透、缓存击穿、…

PyTorch_构建线性回归

使用 PyTorch 的 API 来手动构建一个线性回归的假设函数&#xff0c;数据加载器&#xff0c;损失函数&#xff0c;优化方法&#xff0c;绘制训练过程中的损失变化。 数据构建 import torch from sklearn.datasets import make_regression import matplotlib.pyplot as plt i…

005-nlohmann/json 基础方法-C++开源库108杰

《二、基础方法》&#xff1a;节点访问、值获取、显式 vs 隐式、异常处理、迭代器、类型检测、异常处理……一节课搞定C处理JSON数据85%的需求…… JSON 字段的简单类型包括&#xff1a;number、boolean、string 和 null&#xff08;即空值&#xff09;&#xff1b;复杂类型则有…

HarmonyOS 5.0 分布式数据协同与跨设备同步​​

大家好&#xff0c;我是 V 哥。 使用 Mate 70有一段时间了&#xff0c;系统的丝滑使用起来那是爽得不要不要的&#xff0c;随着越来越多的应用适配&#xff0c;目前使用起来已经和4.3的兼容版本功能差异无碍了&#xff0c;还有些纯血鸿蒙独特的能力很是好用&#xff0c;比如&am…

Linux云计算训练营笔记day02(Linux、计算机网络、进制)

Linux 是一个操作系统 Linux版本 RedHat Rocky Linux CentOS7 Linux Ubuntu Linux Debian Linux Deepin Linux 登录用户 管理员 root a 普通用户 nsd a 打开终端 放大: ctrl shift 缩小: ctrl - 命令行提示符 [rootlocalhost ~]# ~ 家目录 /root 当前登录的用户…

macOS 安装了Docker Desktop版终端docker 命令没办法使用

macOS 安装了Docker Desktop版终端docker 命令没办法使用 1、检查Docker Desktop能否正常运行。 确保Docker Desktop能正常运行。 2、检查环境变量是否添加 1、添加环境变量 如果环境变量中没有包含Docker的路径&#xff0c;你可以手动添加。首先&#xff0c;找到Docker的…

Gradio全解20——Streaming:流式传输的多媒体应用(5)——基于WebRTC的摄像头实时目标检测

Gradio全解20——Streaming&#xff1a;流式传输的多媒体应用&#xff08;5&#xff09;——基于WebRTC的摄像头实时目标检测 本篇摘要20. Streaming&#xff1a;流式传输的多媒体应用20.5 基于WebRTC的摄像头实时目标检测20.5.1 环境配置及说明1. WebRTC2. TURN服务器 20.5.2 …

OSCP - Proving Grounds - NoName

主要知识点 linux命令注入SUID find提权 具体步骤 从nmap开始搜集信息&#xff0c;只开放了一个80端口 Nmap scan report for 192.168.171.15 Host is up (0.40s latency). Not shown: 65534 closed tcp ports (reset) PORT STATE SERVICE VERSION 80/tcp open http …

c++_csp-j算法 (6)_高精度算法(加减乘除)

高精度算法 C++高精度算法是指在C++编程语言中实现高精度计算的算法。在C++中,通常整数的范围是有限的,超出这个范围的整数计算会导致溢出。高精度算法的出现,使得C++程序能够处理超出常规整数范围的大整数计算,包括高精度加法、减法、乘法、除法等运算。 在C++中实现高精…

从OpenMP中的不兼容,窥探AI应用开发中的并行编程

在AI相关的项目开发中,偶然遇到下面这个问题: OMP: Error #15: Initializing libomp.dylib, but found libiomp5.dylib already initialized. OMP: Hint This means that multiple copies of the OpenMP runtime have been linked into the progr am. That is dangerous, sin…

vue2+element实现Table表格嵌套输入框、选择器、日期选择器、表单弹出窗组件的行内编辑功能

vue2element实现Table表格嵌套输入框、选择器、日期选择器、表单弹出窗组件的行内编辑功能 文章目录 vue2element实现Table表格嵌套输入框、选择器、日期选择器、表单弹出窗组件的行内编辑功能前言一、准备工作二、行内编辑1.嵌入Input文本输入框1.1遇到问题1.文本框内容修改失…

c#OdbcDataReader的数据读取

先有如下c#示例代码&#xff1a; string strconnect "DSNcustom;UIDsa;PWD123456;" OdbcConnection odbc new OdbcConnection(strconnect); odbc.Open(); if (odbc.State ! System.Data.ConnectionState.Open) { return; } string strSql "select ID from my…

【HTML5】老式放映机原理-实现图片无缝滚动

老式放映机原理-实现图片无缝滚动 实现思路&#xff1a; 页面设计部分——先将视口div设置为相对定位&#xff0c;再视口div里面嵌套一个类似“胶卷”的div,把该div设置为绝对定位&#xff0c;此时“胶卷"会挂靠在视口上面&#xff0c;再将“胶卷”的left属性设置为负值…

LeetCode 1781. 所有子字符串美丽值之和 题解

示例 输入&#xff1a;s "aabcb" 输出&#xff1a;5 解释&#xff1a;美丽值不为零的字符串包括 ["aab","aabc","aabcb","abcb","bcb"] &#xff0c;每一个字符串的美丽值都为 1这题光用文字解说还是无法达到讲…