VBA Access - 在 Word 文档中查找和替换文本

2023-12-14

我已经在 Excel 中成功编写了一些 VBA 代码,该代码打开现有的 Word 文档,根据 Excel 工作表中的信息查找并替换字符串。

由于存在的源数据来自 Access 数据库,因此我想尝试将 VBA 代码移至 Access 中并从那里运行它。

更新后的代码大部分都可以工作,但奇怪的是,当我在访问中运行它时,查找和替换文本字符串的代码部分不起作用。

Sub CreateFormsPDF()

'   Creates Garda Vetting Forms NVB1 in Word and saves as PDF
    Dim WordApp As Object
    Dim WordDoc As Object
    Dim db As Database
    Dim rs As Recordset
    Dim Records As Integer
    Dim IDAnchor As String
    Dim ID As String
    Dim FilePath As String, SaveAsName As String

    FilePath = "N:\"

'   Start Word and create an object (late binding)
'   Document already exists so reference this
    Set WordApp = CreateObject("Word.Application")
    Set WordDoc = WordApp.Documents.Open(FilePath & "Form1.docx")

    WordApp.Application.Visible = True

'   Point to the relevant table in the Current Database
    Set db = CurrentDb
    Set rs = db.OpenRecordset("qryMailingList", dbOpenDynaset, dbSeeChanges)
    Records = rs.RecordCount

'   Cycle through all records in MailingList Query
    Do Until rs.EOF

'   Define IDAnchor
    IDAnchor = "$$ID$$"

'   Assign current data to variables
    ID = rs!StudentID

'   Determine the filename
    SaveAsName = FilePath & ID & ".pdf"

'   Send commands to Word
    With WordApp
        With WordDoc.Content.Find
            .Text = IDAnchor
            .Replacement.Text = ID
            .Wrap = wdFindContinue
            .Execute Replace:=wdReplaceAll
        End With
        .ActiveDocument.SaveAs2 FileName:=SaveAsName, FileFormat:=17
    End With

    IDAnchor = ID

            rs.MoveNext
    Loop

    WordApp.Quit savechanges:=wdDoNotSaveChanges
    Set WordApp = Nothing
    Set WordDoc = Nothing
    Set rs = Nothing
    Set db = Nothing

    MsgBox Records & " Forms Created"

End Sub

该代码执行良好,但有一个例外,即 Word 中的“查找和替换”元素,即

'   Send commands to Word
    With WordApp
        With WordDoc.Content.Find
            .Text = IDAnchor
            .Replacement.Text = ID
            .Wrap = wdFindContinue
            .Execute Replace:=wdReplaceAll
        End With
        .ActiveDocument.SaveAs2 FileName:=SaveAsName, FileFormat:=17
    End With

更奇怪的是,我有一个通过 Excel 运行的代码版本,它运行时没有任何问题,而且我已经按原样从该子例程中提取了这部分代码。所以这在 Excel 中有效,但在 Access 中无效,但我不知道为什么。

非常感谢任何可能提供的帮助

非常感谢...


其实我自己刚刚弄清楚...我没有在工具下引用Word对象库。

总是简单的事情!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

VBA Access - 在 Word 文档中查找和替换文本 的相关文章

随机推荐

  • 无法让 jQuery Ajax 解析 JSON Web 服务结果

    我已经验证了我的 C Webmethod 的 JSON 响应 所以我不认为这是问题所在 我尝试使用简单的 jQuery ajax 解析结果 但无论出于何种原因 我无法获得正确触发和解析结果的方法 顺便说一句 似乎也无法获得触发结果的函数 它
  • Java JComboBox 监听更改选择事件[重复]

    这个问题在这里已经有答案了 我正在尝试监听 Java JComboBox 中的选择更改 我尝试使用 ActionListener 但问题是这样的 动作侦听器执行类似的操作 public void actionPerformed Action
  • 文本列上的 SQL INNER JOIN

    我有两个表 设备和软件 我想要做一个INNER JOIN在 他们都有一个名为 EQCN 的字段 它是一个文本字段 我收到以下错误 数据类型 text 和 text 在等于运算符中不兼容 必须有办法解决这个问题 将这些列的数据类型更改为var
  • 滚动时间窗口上的 pandas `value_counts`

    我有一个包含字符串值和日期时间索引的 pandas 数据框 如下所示 from datetime import datetime as dt import pandas as pd df pd DataFrame a b b c b b b
  • 共享控制以维护 One-Drive 上的 Access 数据库

    我们有一个中央 Access 数据库 附有较小的外围数据库 我们希望不在同一地点的多个用户可以通过网络使用该数据库 目前我们的数据库位于 OneDrive 上 我们还想在编辑数据库时锁定数据库 我看到 StackOverflow 上有一篇
  • 如何在 firebase 托管 (node.js) 中返回 204 响应代码

    需要一些帮助 我正在尝试使用 android 应用程序访问 firebase 托管上的文件 该应用程序正在下载 txt 文件 并且出于验证原因 在开始下载之前 它应该检查服务器是否可访问 它需要 204 响应代码 没有内容 我可以在 PHP
  • “报告为空” - 是错误吗?

    我已经在 iReport 中创建了带有 3 个参数的报告 并且它运行成功 该报告是使用 3 个参数执行 MS SQL 存储过程 开始日期 enddate dept nm 部门名称 iReport 给出了很好的结果 当我将 jrxml 文件导
  • 全屏iframe高度为100%

    所有浏览器都支持 iframe height 100 吗 我使用 doctype 作为 在我的 iframe 代码中 如果我说 我的意思是它实际上会占据剩余页面的高度 因为顶部有另一个框架 其固定高度为 50px 所有主要浏览器 IE Fi
  • ADFS 2.0 无效名称 ID 策略

    我已经在 adfs 信赖方信任上配置了一个应用程序 因此我可以使用 adfs sso 登录 之后 我安装了 simplesamlphp 来处理该登录 并处理响应 saml 这是我的 authsources 配置 myauth gt arra
  • 关于 iPhone 的方向

    如何获取iPhone当前的方向 我浏览了这个网站 发现了以下两种方法 UIApplication共享应用程序 statusBarOrientation UIDevice currentDevice 方向 哪一种是获取当前方向的正确方法 我在
  • constexpr 使用静态函数初始化静态成员

    要求 我想要一个constexpr值 即编译时常量 计算自constexpr功能 我希望这两个范围都限定在类的命名空间内 即类的静态方法和静态成员 第一次尝试 我首先以 对我来说 显而易见的方式写下这个 class C1 constexpr
  • 有没有办法以编程方式确定字体文件是否具有特定的 Unicode 字形?

    我正在开发一个生成 PDF 的项目 其中可以包含相当复杂的数学和科学公式 文本以 Times New Roman 格式呈现 它具有相当不错的 Unicode 覆盖率 但并不完整 我们有一个系统可以用更完整的 Unicode 字体来替换 TN
  • Big Query 作业失败,并显示“遇到错误字符 (ASCII 0)”。

    我的工作因错误而失败 行 14222274 字段 1 遇到错误字符 ASCII 0 文件的其余部分未处理 数据已被压缩 并且我已验证文件中不存在 ASCII 0 字符 文件中只有 14222273 行 因此错误消息中打印的行号是文件末尾之后
  • Windows 窗体解析问题

    我在 Windows 窗体中开发了 1024 780 分辨率的屏幕 但有人说它在更高分辨率下无法正常显示 有什么办法可以处理这个问题吗 有没有办法让 Windows 窗体应用程序在所有分辨率下看起来都一样 我的建议并不是在所有屏幕上 使其看
  • 使用 EPPlus 将图像添加到 Excel 中

    我正在尝试使用 EPPlus 将同一图像多次添加到 Excel 文件中 我正在使用以下代码来执行此操作 Image logo Image FromFile path ExcelPackage package new ExcelPackage
  • 如何在Excel中对日期进行排序而不重复

    早上好 我有一个关于 Excel 中日期排名的问题 请参见下图 在排名栏中 我用了公式 RANK A3 A A 1 但这不是我想要的 我只希望相同的日期共享与我的目标格式列中显示的相同的排名 谁能告诉我应该应用什么公式来实现这个目标 非常感
  • 蚂蚁为其他蚂蚁服务

    我有几个项目 其中大多数都有 test 目标 运行测试并将结果存储在属性中 测试失败 所有项目都位于同一目录中 大项目 someproject1 big project someproject1 build xml big project
  • Angular Fire Auth 后未收到响应

    使用 AngularFire 注册用户后 我没有收到响应 用户电子邮件出现在 Angular 的身份验证基础上 但登录行为空 并且似乎没有执行 console log 函数 这是我的代码 希望你能帮助我 谢谢 app controller
  • 有没有办法从实例中获取平台和操作系统

    我正在尝试从我的 AWS EC2 实例获取一些信息 我想知道是否有办法提取信息 例如 Platform Version CentOS 6 0 or 7 0 Ubuntu 10 04 or 12 04 Windows 我想知道使用 SDK 是
  • VBA Access - 在 Word 文档中查找和替换文本

    我已经在 Excel 中成功编写了一些 VBA 代码 该代码打开现有的 Word 文档 根据 Excel 工作表中的信息查找并替换字符串 由于存在的源数据来自 Access 数据库 因此我想尝试将 VBA 代码移至 Access 中并从那里