第四节(2):修改WORD中表格数据的方案

《VBA信息获取与处理》教程(10178984)是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪贴板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。是非常抽象的,更具研究的价值。

教程共两册,二十个专题。今日分享内容是:第四节(2):修改WORD中表格数据的方案1d5ebe6277af3aa5621f8de30e9c321e.jpeg

【分享成果,随喜正能量】人生像一只皮箱,需要用的时候提起,不用的时就把它放下,应放下的时候,却不放下,就像拖着沉重的行李,无法自在。人生的岁月有限,认错、尊重、包容才能让人接受,放下才自在啊。

第四节在EXCEL中打开及修改WORD文件

在上面的专题中,我们讲了如何在WORD中打开EXCEL。那么同理,如何在EXCEL中打开WORD呢?在这讲中我给出专题的讲解,这个讲解中我们将利用CreateObject函数和GetObject 函数分别建立一个引用及获取已经打开的WORD文件信息。这讲的内容为了增加实用性,我在程序中还给出了如何向WORD的表格(非嵌套)中添加数据,这个数据来源于EXCEL。

2主程序及修改WORD中的表格数据的方案

在中主程序中我们将利用WordIsOpen函数对我们需要判断的文件进行判断,如果没有打开,那么执行打开操作,再进行修改;如果已经打开,那么执行修改操作。

代码如下:

Sub MYNZB()

    Dim RR As Boolean

    Dim myWdA As Object

    Dim MyDocument As Object

    RR = WordIsOpen(ThisWorkbook.Path & "\001 在WORD中激活EXCEL.docm")

    If Not RR Then '创建Word对象

        Set myWdA = CreateObject("Word.Application")

        myWdA.Visible = True '打开指定文档

        Set MyDocument = myWdA.Documents.Open(ThisWorkbook.Path & "\001 在WORD中激活EXCEL.docm")

        '获取当前Excel的SHEET2的单元格C2数据

        mystr = ThisWorkbook.Sheets(2).Cells(2, 3).Value

        '将取得得值设定到Word表格的1行2列中

        MyDocument.Tables(1).Cell(2, 3).Range.Text = mystr

        MyDocument.Save

        Set myWdA = Nothing

        Set MyDocument = Nothing

    Else

        Set myWdA = GetObject(, "WORD.Application")

        For Each doc In myWdA.Documents

            UU = UCase(doc.FullName)

            If doc.FullName = ThisWorkbook.Path & "\001 在WORD中激活EXCEL.docm" Then

                mystr = ThisWorkbook.Sheets(2).Cells(2, 3).Value

                '将取得得值设定到Word表格的1行2列中

                doc.Tables(1).Cell(2, 3).Range.Text = mystr

                doc.Save

                Set doc = Nothing

                Exit For

            End If

        Next

        Set myWdA = Nothing

    End If

End Sub

代码截图:

88e7511101be61cad6c4acaa0a2df478.jpeg

代码解读:上述代码先利用WordIsOpen函数判断"001 在WORD中激活EXCEL.docm"是否已经打开,如果没有打开,那么利用CreateObject函数建立引用,然后打开这个文件,打开后修正文件文件,如果已经打开了文件,那么首先定位到打开的文件,然后在修正。下面看代码的重点讲解:

① If Not RR Then '创建Word对象

  Set myWdA = CreateObject("Word.Application")

  myWdA.Visible = True '打开指定文档

  Set MyDocument = myWdA.Documents.Open(ThisWorkbook.Path & "\001 在WORD中激活EXCEL.docm")

  '获取当前Excel的SHEET2的单元格C2数据

  mystr = ThisWorkbook.Sheets(2).Cells(2, 3).Value

  '将取得得值设定到Word表格的1行2列中

  MyDocument.Tables(1).Cell(2, 3).Range.Text = mystr

  MyDocument.Save

  Set myWdA = Nothing

  Set MyDocument = Nothing

上述代码是打开文件及修正文件的代码。

② Set myWdA = GetObject(, "WORD.Application")

   For Each doc In myWdA.Documents

     UU = UCase(doc.FullName)

     If doc.FullName = ThisWorkbook.Path & "\001 在WORD中激活EXCEL.docm" Then

       mystr = ThisWorkbook.Sheets(2).Cells(2, 3).Value

      '将取得的值设定到Word表格的1行2列中

      doc.Tables(1).Cell(2, 3).Range.Text = mystr

      doc.Save

      Set doc = Nothing

      Exit For

     End If

   Next

   Set myWdA = Nothing

上述代码是当文件已经打开,定位所给出的文件,然后修订文件的代码。

③ 上述文件修订的代码,我给出的比较简单,大家在实际利用的时候可以发挥使用。

本节知识点回向:如何利用CreateObject函数和GetObject 函数来判断一个给定的文件是否打开?当已经得到文件已经打开时如何定位到这个文件?以上两个问题就是本节要讲解的主要问题,其中的代码完全可以用作通用代码来对待。

备注:本节代码参考文件“001 工作表.xlsm”

ac33785a1dddee31246ddaaf26d968f4.jpeg

我20多年的VBA实践经验,全部浓缩在下面的各个教程中,教程学习顺序:

60ddda9a11da6f306581e57b79ee0df2.jpeg


ac17c4ebb93f3146c2f0888d94a95574.jpeg

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

容器网络-Underlay和Overlay

一、主机网络 前面讲了容器内部网络,但是容器最终是要部署在主机上,跨主机间的网络访问又是怎么样的,跨主机网络主要有两种方案。 二、 Underlay 使用现有底层网络,为每一个容器配置可路由的网络IP。也就是说容器网络和主机网络…

Spring Boot(二)

1、运行维护 1.1、打包程序 SpringBoot程序是基于Maven创建的,在Maven中提供有打包的指令,叫做package。本操作可以在Idea环境下执行。 mvn package 打包后会产生一个与工程名类似的jar文件,其名称是由模块名版本号.jar组成的。 1.2、程序…

Docker容器网络

一、Docker网络 Docker网络有下面4种配置类型,用的比较多的是Bridge: Null(–netNone) 把容器放入独立的网络空间但不做任何网络配置;用户需要通过运行 docker network 命令来完成网络配置。 Host 使用主机网络名空间,复用主机网…

万字详解Linux内核内存规整!超详细!

1.前言 伙伴系统作为内核最基础的物理页内存分配器,具有高效、实现逻辑简介等优点,其原理页也尽可能降低内存外部碎片产生,但依然无法杜绝碎片问题。外部碎片带来的最大影响就是内存足够,但是却无法满足内存分配需求,…

Spring事务一网打尽

Spring事务一网打尽 什么是事务首先说一个坑Spring 中的事务两种用法三大基础设施编程性事务TransactionManager 实现编程性事务TransactionTemplate 实现编程性事务 声明式事务XML配置声明式事务注解配置声明式事务注解XML混合配置声明式事务 什么是事务 这里要额外补充一点&a…

docker主备节点数据同步

主备节点挂载 在生产环境中,赋予一个docker操作系统的权限是一件不安全的事,在不具有系统操作权限的情况下,主备机无法通过nfs进行挂载。此时,可借助数据卷进行挂载 创建两个数据卷 docker volume create vol1 docker volume cr…

openstack部署后实战

分布式部署规则 1、平常都是两台Node安装OpenStack平台,那如果想分布式部署该怎么做?比如:部署两台Nova服务,一台单独的Neutron服务,一台单独的存储节点等。 整体思想: 如果想要部署两台Nova服务&#xf…

vue3 使用element plus 打包时 报错

vue3vitetselementPlus中运行正常打包出错 能正常运行,但是打包出错 解决打包时出现导入element plus相关的爆红,导致无法打包的问题 如若出现类似于:Module ‘“element-plus”’ has no exported member ‘ElMessage’. Did you mean to…

94.二叉树的中序遍历

描述 : 给定一个二叉树的根节点 root ,返回 它的 中序 遍历 。 题目 : LeetCode 94.二叉树的中序遍历 : 94. 二叉树的中序遍历 分析 : 这个代码还是很好写的 ...... 解析 : /*** Definition for a binary tree node.* public class TreeNode {* int val;…

前端开发项目中使用字体库

开发中有些项目要求使用固定的字体,这就需要项目中使用字体库。 首先需要下载字体库 将下载的字体文件放进项目中 在项目代码样式文件中定义字体 font-face {font-family: "Tobias-SemiBold";src: url("./assets/font/Tobias-SemiBold.ttf"…

Gogs安装和部署教程-centos上

0、什么是 Gogs? Gogs 是一款极易搭建的自助 Git 服务。 Gogs 的目标是打造一个最简单、最快速和最轻松的方式搭建自助 Git 服务。使用 Go 语言开发使得 Gogs 能够通过独立的二进制分发,并且支持 Go 语言支持的 所有平台,包括 Linux、Mac OS X、Windo…

「题解」环形链表的约瑟夫问题

文章目录 🍉题目🍉解析🍌创建环形链表🍌释放指定节点🍌其他思路 🍉写在最后 🍉题目 🍉解析 题目的意思就是从环形链表的第一个节点开始数,数到第 m 的时候释放对应的节点…

CMake教程--QT项目使用CMake

CMake教程--QT项目使用CMake Chapter1 CMake教程--QT项目使用CMake1. Basic Cmake Based Project2. Executable VS Library3. Every module has its own CMakeList.txt in its folder3.1 不推荐的做法:3.2 推荐的做法 4. 强制以Debug, Release, RelWithDebInfo, Min…

Mac安装与配置eclipse

目录 一、安装Java:Mac环境配置(Java)----使用bash_profile进行配置(附下载地址) 二、下载和安装eclipse 1、进入eclipse的官网 (1)、点击“Download Packages ”​编辑 (2)、找到macOS选择符合自己电脑的框架选项…

人工智能基础_机器学习023_理解套索回归_认识L1正则---人工智能工作笔记0063

然后上一节我们说了L1,L2正则是为了提高,模型的泛化能力, 提高泛化能力,实际上就是把模型的公式的w,权重值,变小对吧. 然后我们这里首先看第一个L1正则,是怎么做到把w权重变小的 可以看到最上面是线性回归的损失函数,然后 L1可以看到,这个正则,就是在损失函数的基础上给损失…

轻松按需缩放图片像素——批量处理图片,满足不同需求!

在图片使用过程中,我们经常需要按照不同的要求调整图片的像素大小。如果一张一张地手动调整,不仅耗时而且容易出错。这款软件可以帮助您轻松实现批量处理图片,按需缩放图片像素,让您的图片管理更加高效、便捷! 第一步…

Vuex持久化插件

Vuex数据默认是存储在内存中的,当然我们也可以将它存储在Local Storage,也可以指定某些数据存储在Local Storage 这样我们就用到了Vuex持久化插件vuex-persistedstate 安装vuex-persistedstate插件 npm install vuex-persistedstate --save 案列&#x…

MPSO-WPA

MPSO-WPA算法 DCAP means ’ discretized Cauchy’s argument principle’ 辅助信息 作者未提供代码

数据结构线性表——带头双向循环链表

前言:小伙伴们好久不见啦,上篇文章我们一起学习了数据结构线性表其一的单链表,了解了单链表的不少好处,但是不可能有完美的数据结构,就算是单链表,也会有很多缺点。 那么今天这篇文章,我们就来…

node插件MongoDB(五)—— 库mongoose 的模块化(五)

文章目录 一、使用mongoose 模块化的原因二、准备工作2. 启动mongo.exe 和mongod.exe 两个程序连接数据库 三、基本模块的拆分1、基本逻辑2、代码3、代码图示说明 四、在index.js 中进一步的拆分1.拆分原因2.新建model文件夹存储文档的结构对象3.代码4.代码实际演示和注意点 一…