首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用VBA从Excel打开Word Doc,查找日期文本,并将其替换为Excel中单元格中的日期文本

使用VBA从Excel打开Word Doc,查找日期文本,并将其替换为Excel中单元格中的日期文本
EN

Stack Overflow用户
提问于 2020-01-17 02:46:08
回答 1查看 366关注 0票数 0

我有一个带有文本的单词doc,还有一个日期文本,其中显示了以下格式:

代码语言:javascript
运行
AI代码解释
复制
text text text 17.01.2020 text text text.

我希望将上面的日期文本替换为Excel中的一个单元格,该单元格也是一个类似于这个18.01.2020的日期。

因此,VBA代码应该执行以下操作:

1.打开word文档

2.查找文本并将其替换为Excel中的文本

3.省吃俭用。

代码语言:javascript
运行
AI代码解释
复制
Sub DocSearchandReplace()
Dim wdApp As Object, wdDoc As Object
Set wdApp = CreateObject("word.application")
wdApp.Visible = True
Set wdDoc = wdApp.Documents.Open("C:\sampletest.docx")
With wdDoc.Content.Find
  .Date = "???"
  .Replacement.Cell = "referencing a cell from Excel??"
  .Wrap = wdFindContinue
  .Execute Replace:=wdReplaceAll
End With

wdDoc.Save 'it however always prompt a word warning, how to surpress it?
wdDoc.Close 'it only closes the doc inside Word without closing the whole program.

Set wdApp = Nothing: Set wdDoc = Nothing
End Sub

我不知道在.Date和.Replacement.Cell部分应该写什么。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-17 03:14:30

问题是你的语法是错误的。.Date.Replacement.Cell属性不存在于Find对象中。一定要阅读查找对象手册,不要发明属性。

根据查找和替换文本或格式,正确的同步是这样的:

代码语言:javascript
运行
AI代码解释
复制
With wdDoc.Content.Find 
    .ClearFormatting 
    .Text = "17.01.2020" 'your date to replace
    .Replacement.ClearFormatting 
    .Replacement.Text = ThisWorkbook.Worksheets("Sheet1").Range("A1").Text 'read value from sheet1 cell A1
    .Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue 
End With

据Cindys评论,Word中存在类似于使用正则表达式的通配符匹配。

代码语言:javascript
运行
AI代码解释
复制
With wdDoc.Content.Find 
    .ClearFormatting 
    .Text = "[0-9]{2}.[0-9]{2}.[0-9]{4}"  'will match ##.##.####
    .MatchWildcards = True 'makes sure the above wildcards are recognized
    .Replacement.ClearFormatting 
    .Replacement.Text = ThisWorkbook.Worksheets("Sheet1").Range("A1").Text 'read value from sheet1 cell A1
    .Execute Replace:=wdReplaceAll, Forward:=True, Wrap:=wdFindContinue 
End With

由于您使用的是后期绑定,所以在使用它们之前,必须为WdFindWrapWdReplace枚举定义Word常量。

代码语言:javascript
运行
AI代码解释
复制
Const wdReplaceAll As Long = 2
Const wdFindContinue As Long = 1

或者用它们的价值来代替它们

代码语言:javascript
运行
AI代码解释
复制
.Execute Replace:=2, Forward:=True, Wrap:=1

或设置对Word的引用并使用eary绑定,以便自动定义它们。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59785829

复制
相关文章
【VBA】在excel中检索文本
虽然在excel文件中检索的vba代码不知道写了多少遍了,每次需要的时候,都是从网上找,然后写。实在是低效的做法。从网上找了一段代码,放在此处,以后需要的时候可以随手拿来。
东风压倒西风
2022/09/06
2.8K0
EXCEL中日期对应的数值如何转换为ABAP中的日期
默认情况下,Excel把1900-1-1 0:00:00存储为1,把1900-1-1 0:00:00以后的每一个时刻存储为该时刻与1900-1-1 0:00:00这个时刻的差值(以天为单位)。
matinal
2023/10/13
2520
txt文本格式怎么转换成excel_文本格式转换为日期
注:当行数大于65535时,就需要使用Excel 2007 一个工作表行数限制1048576,列数限制16384
全栈程序员站长
2022/09/20
2.1K0
学会Excel:[4]日期格式、文本格式快速转换
Excel表中日期格式其实是数值,有时候需要原样转成文本,有时候也要将文本转成日期。
用户1191760
2019/02/27
1.5K0
在Excel中通过VBA对Word文档进行查找替换
哆哆Excel
2023/09/09
7120
在Excel中通过VBA对Word文档进行查找替换
Excel: 通过VBA代码打开word文件
文章背景:在使用Excel的Userform时,有时想要打开指定路径的word文件。下面介绍打开word文件的一种方式。
Exploring
2022/09/20
3.8K0
Excel: 通过VBA代码打开word文件
Excel小技巧81:巧妙拆分单元格中的文本
很多时候,一个单元格中包含有多个数据信息。有时,我们需要将这些数据拆成几个组成部分。本文介绍一个简单的技巧。
fanjy
2021/04/21
1.5K0
Excel小技巧81:巧妙拆分单元格中的文本
Excel小技巧50: 快速合并单元格中的文本
如果想要将几个单元格中的文本合并,有很多种方法。然而,有一种方法最会被忽视,可能是我们很少使用的缘故。它就是“内容重排”命令,如下图1所示。
fanjy
2020/08/29
1.4K0
Excel公式技巧98:总计单元格文本中的数字
有些需求看起来很特别,但有时候确实会发生,而这往往是由于数据不规范造成的,例如下图1所示的示例。
fanjy
2021/07/12
1.3K0
Excel公式技巧98:总计单元格文本中的数字
从Python中运行Excel VBA
有时候,我们可能想要从Python运行Excel VBA宏,特别是当想要运行已有的Excel宏时,这很有用——甚至可以在不打开Excel文件的情况下执行这些VBA宏。
fanjy
2022/04/13
5.7K0
VBA专题06-3:利用Excel中的数据自动化构建Word文档—从Excel中访问Word文档
要从Excel中访问Word文档,需要建立对Word的连接。建立连接有两种方法:后期绑定和前期绑定。前期绑定能够更容易地利用自动提示编写代码,更早发现编码错误,而后期绑定直到代码执行时才创建连接,在版本上更灵活。
fanjy
2019/10/09
3.2K0
VBA专题06-3:利用Excel中的数据自动化构建Word文档—从Excel中访问Word文档
Python与Microsoft Office
Microsoft Office现在已经是我们每天必须使用的软件之一,而Python可用于编写Office脚本(也称为自动化),使用户更容易使用。这可能不像录制宏那么容易,但也不是很复杂。在本文中,将介绍如何使用PyWin32模块访问一些Office程序,并使用Python操作它们。
fanjy
2022/03/07
2.7K0
Python与Microsoft Office
EXCEL必备工具箱17.0免费版
今天逛论坛,无意中发现一个好用的小工具,我试过啦,确实挺不错的,和大家分享一下! 这个是免费版的,不会收费的,只有增强版的才收费
星泽V社
2022/03/02
5.3K0
EXCEL必备工具箱17.0免费版
简单的Excel VBA编程问题解答——完美Excel第183周小结
下面是2020年11月12日发布的一些简单的ExcelVBA问题的答案,是不是和你想的一样。
fanjy
2020/11/24
6.7K0
Excel基础入门——字符串/文本/日期函数详解(七)
上节课我们介绍了Excel中常用的统计函数用法,具体可回顾Excel基础入门——countif/sumif/countifs/sumifs函数用法详解(六),本节课我们将介绍Excel中常用字符串&文本&日期函数的使用方法,重点介绍left/right/mid/text/datedif/weekday函数的使用方法。话不多说,马上进入正题。
用户7569543
2021/09/10
2K0
Excel基础入门——字符串/文本/日期函数详解(七)
使用 VBA 将 Excel 数据导入到 Word 表格中
现要求将一个 Excel 数据表中的每行数据导成一个 Word 文档,即有多少行数据就生成多少个 Word 文档,Excel 每列与 Word 文档中的表格项一一对应。
mzlogin
2020/04/16
4.8K0
使用 VBA 将 Excel 数据导入到 Word 表格中
现要求将一个 Excel 数据表中的每行数据导成一个 Word 文档,即有多少行数据就生成多少个 Word 文档,Excel 每列与 Word 文档中的表格项一一对应。
零式的天空
2022/03/24
4.8K0
EXCEL中简单使用VBA上
在Excel内部打开VBA 以及在运行之前需要开启一下家开发人员的安全性 打开的页面可能是这样,不要慌 可以在这里选择打开窗口 如果还是不一样,可以这这里打开资源的管理器 F4按键会按照当前你打开的窗口,智能的打开你目前所在窗口的属性 我们按照惯例先看一下项目的管理栏目 首先好的一点就是可以看出来项目内部文件之间的层级关系 我们这里可以点击右键探索一些ssuo 在右键的菜单内可以打开菜单 我们这里看一下类 这个图截取的更加的清晰 也可以把当前的代码打印出来 打印的效果图 首先我们要使用的画布,所有的操作
云深无际
2021/03/12
1.8K0
EXCEL中简单使用VBA上
VBA TXT文本文件 转 Excel
*******************************************
办公魔盒
2019/07/22
2.6K0
在 Excel 工作簿中定义决策表(Oracle Policy Modeling-Define decision tables in Excel workbooks)
要在 Excel 中编写规则,您只需在表中编写规则,并使用 Oracle Policy Modeling 样式标识单元格中的信息类型,
Hongten
2018/09/13
4.1K0
在 Excel 工作簿中定义决策表(Oracle Policy Modeling-Define decision tables in Excel workbooks)

相似问题

VBA在word doc中查找特定文本,并将此文本从word doc复制到excel中的单元格中。

13

VBA从Excel中查找Word文档中的文本

11

Excel VBA将文本转换为日期

214

Excel VBA宏在.doc文件中查找文本

11

VBA Excel将Word文本替换为Excel单元格值

151
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
社区富文本编辑器全新改版!诚邀体验~
全新交互,全新视觉,新增快捷键、悬浮工具栏、高亮块等功能并同时优化现有功能,全面提升创作效率和体验
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文