使用VBA将Excel指定单元格数据、字符串或者图表对象插入到Word模板指定书签处

准备工作:

1、首先需要提供一个word模板,并且标记好您要插入书签的位置,定义书签的命名。如图

2、模拟您要插入的Excel原始数据和图表对象

插入代码如下:

Private Sub CommandButton1_Click()

    Dim App, WrdDoc, Mypath As String

    On Error Resume Next
    ‘定义原始模板的储存路径,默认和excel在同一路径
    Mypath = ThisWorkbook.Path & "\模板.doc"
    ‘用Set关键字创建Word应用成序对象!
    Set App = CreateObject("Word.Application")
    App.Visible = True
    ‘打开这个Word文件!
    Set WrdDoc = App.Documents.Open(Mypath)
    ‘以当前模板创建一个新的模板
    Set word = App.Documents.Add(Mypath)
    ‘将excel指定单元格的数据写入之前已经编辑定位好的word书签位置
    word.Bookmarks("书签1").Range = Range("b2")
    word.Bookmarks("书签2").Range = Range("b3")
    word.Bookmarks("书签3").Range = Range("b4")
    word.Bookmarks("书签4").Range = Range("b5")
    word.Bookmarks("书签5").Range = Range("b6")

    ‘‘插入当前工作表的2个图表对象到指定位置,并显示出来
    ‘‘更改word 插入对象的环绕方式
    ‘‘http://www.debugease.com/vb/2205943.html
    With App
        ThisWorkbook.Worksheets("底稿数据").ChartObjects(1).Activate
        ActiveChart.ChartArea.Copy
        .ActiveDocument.Bookmarks("收入情况图").Range.Select
        .Selection.Paste
        .ActiveDocument.InlineShapes.Item(1).ConvertToShape
        .ActiveDocument.Shapes.Item(1).WrapFormat.Type = wdWrapTight

        ThisWorkbook.Worksheets("底稿数据").ChartObjects(2).Activate
        ActiveChart.ChartArea.Copy
        .ActiveDocument.Bookmarks("支出情况图").Range.Select
        .Selection.Paste
        .ActiveDocument.InlineShapes.Item(1).ConvertToShape
        .ActiveDocument.Shapes.Item(1).WrapFormat.Type = wdWrapTight ‘更改环绕方式
    End With

    Paths = CreateObject("WScript.Shell").SpecialFolders("Desktop") & "\" ‘记录“桌面”文件夹的路径
    word.SaveAs Filename:=Paths & "2019年X月XXXX食堂收支分析报告" & ".doc" ‘另存为word报告成品
    word.Close ‘ 关闭文件
    App.Quit
    Set App = Nothing
    MsgBox "2019年X月XXXX食堂收支分析报告", vbInformation, "报告已生成到桌面"
    Shell "EXPLORER.EXE " & Left(Paths, Len(Paths) - 1), vbMaximizedFocus ‘打开桌面
End Sub

附件下载地址:

https://files.cnblogs.com/files/ty1216jhy/%E8%87%AA%E5%8A%A8%E7%94%9F%E6%88%90%E9%A3%9F%E5%A0%82%E6%8A%A5%E5%91%8A.rar

联系QQ:609682901

原文地址:https://www.cnblogs.com/ty1216jhy/p/10819834.html

时间: 2024-10-09 17:35:13

使用VBA将Excel指定单元格数据、字符串或者图表对象插入到Word模板指定书签处的相关文章

VBS读取txt文档数据查找Excel中单元格数据符合条件的剪切到工作表2中

Dim fso,f,a set oExcel = CreateObject( "Excel.Application" ) oExcel.Visible = false '4) 打开已存在的工作簿: oExcel.WorkBooks.Open( "F:\1.xlsx" ) On Error Resume Next '判断是否存在Sheet2工作表,不存在新建 If oExcel.WorkSheets("Sheet2") Is Nothing The

vba打开excel文件遍历sheet的名字和指定单元格的值

今天项目上有个应用,获取指定Excel文件下的所有sheet的名称以及当前sheet中指定单元格的值,并把他们写到固定的sheet中去,看了下,文件比较多,而且每个文件sheet的个数比较多,也不一样,所以打算写个程序来帮我们实现任务,代码很简单,也写的比较死板.欢迎大家给出意见及你的代码: Sub aaaa() Dim sh1, sh2 As Worksheet Dim shName, cellValue As String 'On Error Resume Next Set sh1 = Wo

[办公应用]如何将excel合并单元格分拆后每个单元格上仍保留数据?

合并单元格虽然美观,但是无法进行排序.筛选等操作. 只有合并单元格拆分后才可以按常规进行统计.但是普通拆分后,excel仅保留合并单元格数据到区域左上角的单元格. 解决方案:选定多个合并单元格,应用本宏即可每个单元格均保留数据:Sub 拆分() Dim c As Range For Each c In ActiveSheet.UsedRange.Cells If c.MergeCells Then c.Select c.UnMerge Selection.Value = c.Value End

C#实现对EXCEL指定单元格进行操作

using System; using System.Collections.Generic; using System.Text; //先添加引用 using Microsoft.Office.Interop.Excel; using System.IO; using System.Reflection;   namespace SighExcel {     public class Sign     {         /// <summary>         /// 对Excel指定

在Excel里用vba给合并的单元格添加注释

Excel里使用VBA对已经合并的单元格添加注释,直接使用AddComment会报: 运行时错误 '1004':应用程序定义或者对象定义错误 找了很多文章都没找到怎么解决,最后发现在AddComment之前,先ClearComments一下,就好了 Excel using vba to add comment to a merged cell if occur runtime error 1004, before invoking addcomment, first  invoke ClearC

C#修改 Excel指定单元格的值

/// <summary> /// 将指定字符串写入指定单元格中 /// </summary> /// <param name="data">要写入的数据源</param> /// <param name="sheetName">工作表名称(全路径+EXCEL表名称)</param> /// <param name="row">第几行</param>

excel 截取单元格部分内容(从指定位置截取)

excel 截取单元格部分内容(从指定位置截取) CreateTime--2018年5月28日08:28:46 Author:Marydon 1.情景展示 截取手机号后6位 2.实现 语法说明:right(单元格,num) 根据单元格内容,从右边开始截取num位 3.从左边截取num位 语法说明:left(单元格,num) 根据单元格内容,从左边截取num位 相关推荐: excel 如何为列添加指定内容(字符串) 原文地址:https://www.cnblogs.com/Marydon20170

[从产品角度学EXCEL 03]-单元格的秘密

这是<从产品角度学EXCEL>系列——单元格的秘密. 前言请看: 0 为什么要关注EXCEL的本质 1 EXCEL是怎样运作的 2 EXCEL里的树形结构 或者你可以去微信公众号@尾巴说数 获得连载目录. 本文仅由尾巴本人发布于特定网站.不接受任何无授权转载,如需转载,请先联系我,非常感谢. 在讲了excel的树形结构之后,我们终于要进入正题,研究单元格的秘密了. 当我们打开excel的时候,首先映入眼帘的就是一大片格子,这就是单元格. 在excel里,单元格承担了几乎所有的存储信息的功能.你

Swing-JTable检测单元格数据变更事件

在JTable的初级教程中往往会提到,使用TableModel的 addTableModelListener方法可以监听单元格数据的变更,在其事件处理函,数tableChanged中,可以通过e.getColumn(),e.getFirstRow(),e.getLastRow(),e.getType()来获取变更发生的位置和变更的类型(插入.更新或删除).然而该方法存在2个致命的问题: 1.双击单元格使其处于可编辑状态后,即使没有做出任何修改,当单元格失去焦点时,该事件将被激活. 2.通过该事件