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

拷贝多个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.xdnf.cn/news/4079.html

相关文章:

  • 谷歌最新推出的Gemini 2.5 Flash人工智能模型因其安全性能相较前代产品出现下滑
  • nginx面试题
  • 物联网之对接MQTT最佳实践
  • CPT204 Advanced Obejct-Oriented Programming 高级面向对象编程 Pt.10 二叉搜索树
  • 【将你的IDAPython插件迁移到IDA 9.x:核心API变更与升级指南】
  • WSL 安装 Debian 后,apt get 如何更改到国内镜像网址?
  • C++笔记之委托
  • 利用迁移学习实现食物分类:基于PyTorch与ResNet18的实战案例
  • 【蓝牙协议栈】【BR/EDR】【AVCTP】精讲音视频控制传输协议
  • 分享一个Android中文汉字手写输入法并带有形近字联想功能
  • Baklib驱动企业知识管理AI升级
  • day15 python 复习日
  • 复杂网络系列:第 5 部分 — 社区检测和子图
  • 在写setup时遇到的问题与思考
  • Circular Plot系列(一): 环形热图绘制
  • 《马小帅的Java闯关记》
  • 模型部署与提供服务
  • QpushButton 扩展InteractiveButtonBase
  • k230摄像头初始化配置函数解析
  • nproc命令查看可用核心数量详解
  • [Windows] 智绘教 v20250403a 屏幕批注工具
  • day 12 三种启发式算法:遗传算法、粒子群算法、退火算法
  • 用卷积神经网络 (CNN) 实现 MNIST 手写数字识别
  • Python函数完全指南:从零基础到灵活运用
  • 深度学习中保存最优模型的实践与探索:以食物图像分类为例
  • GTID(全局事务标识符)的深入解析
  • 高翔《视觉SLAM十四讲》中第13讲,单目稠密重建中的RMODE数据集
  • TS 元组
  • 2025年PMP 学习三
  • 游戏开发的TypeScript(4)TypeScript 的一些内置函数