当前位置: 首页 > 知识库问答 >
问题:

自动邮件合并

梁研
2023-03-14

我需要使用Access数据库表中的文本动态生成word文档。这里的警告是,来自数据库的一些文本需要修改为Mergefields。我目前使用Interop.Word(VBA宏)和VB.NET生成文档。

到目前为止,我的步骤是这样的:

  1. 拉标准.docx模板
  2. 使用表中预定义的填充文本填充模板
  3. 通过用实际的MergeFields替换填充器文本来添加MergeFields
  4. 附加数据源并执行邮件合并

添加VBA标签,因为我正在寻找一个“VBA”风格的答案(Word Interop)。

共有1个答案

葛驰
2023-03-14

你漏掉了很多细节,所以我将用一些笼统的术语来回答这个问题。

你想做的事情肯定是可以实现的。两种可能的解决方案立即浮现在脑海中:

  1. 使用查找
  2. 替换范围
  3. 使用typetext
  4. 插入令牌
Sub FindInsertMerge()
    Dim rng As Range
    Set rng = ActiveDocument.Range

    With rng.Find
        .Text = "(\@*\@)"
        .MatchWildcards = True
        .Execute

        If .Found Then
            ActiveDocument.MailMerge.Fields.Add rng, Mid(rng.Text, 2, Len(rng.Text) - 2)
        End If
    End With
End Sub
Private Sub InsertMergeText(rng As Range, txt As String)
    Dim i As Integer
    Dim t As String
    Dim tokens() As String

    tokens = Split(txt, " ")
    rng.Select

    For i = 0 To UBound(tokens)
        t = tokens(i)

        If Left(t, 1) = "@" And Right(t, 1) = "@" Then
            'Insert field if it's a mail merge label.
            ActiveDocument.MailMerge.Fields.Add Selection.Range, Mid(t, 2, Len(t) - 2)
        Else
            'Simply insert text.
            Selection.TypeText t
        End If

        'Insert the whitespace we replaced earlier.
        If i < UBound(tokens) Then Selection.TypeText " "
    Next
End Sub
InsertMergeText Selection.Range, "After @INACTIVE_DATE@ your account will no longer be active which will be in the database text."
 类似资料:
  • 本文向大家介绍PHP实现163邮箱自动发送邮件,包括了PHP实现163邮箱自动发送邮件的使用技巧和注意事项,需要的朋友参考一下 163邮箱大家都使用过吧,那么基于php如何实现163邮箱自动发送邮件功能呢,下面呐喊教程小编给大家分享具体实现代码: 想给大家展示下效果图: demo.html sendmail.php email.class.php 有关PHP实现163邮箱自动发送邮件功能小编就到此

  • 本文向大家介绍Drupal 8:自动垃圾邮件防护,包括了Drupal 8:自动垃圾邮件防护的使用技巧和注意事项,需要的朋友参考一下 对于互联网上具有公开可用形式的任何网站,垃圾邮件都是一个长期存在的问题,但是自动阻止垃圾邮件可能很棘手。这样做的目的是防止自动垃圾邮件bot能够将数据提交到您的站点,但不会损害用户。在防止垃圾邮件和阻止真实用户提交真实内容之间要有一个谨慎的平衡。手动审核博客评论通常是

  • 本文向大家介绍Python实现自动发送邮件功能,包括了Python实现自动发送邮件功能的使用技巧和注意事项,需要的朋友参考一下 简单邮件传输协议(SMTP)是一种协议,用于在邮件服务器之间发送电子邮件和路由电子邮件。Python提供smtplib模块,该模块定义了一个SMTP客户端会话对象,可用于使用SMTP或ESMTP侦听器守护程序向任何互联网机器发送邮件。 SMTP通讯的基本流程可以概括为以下

  • 有什么可以让我开始的指针或示例代码吗?

  • 我四处搜索,从我可以看出,大多数人只是使用一个SMTP插件为这...但是,我想知道怎么了!:) 几周前,我们开始收到报告说,客户没有收到他们的确认电子邮件,当他们下了订单在我们的商店。这以前工作得很好。这里是真正奇怪的部分,据我所知,它只是当我下了一个订单,处理电子邮件没有发送。我们有两种支付选择,贝宝和克拉纳。两个都有用,我自己也试过。我给自己下了真正的订单,一切都很顺利...除了来自Wooco

  • 问题内容: 当我在日志中按“发送”按钮时,显示“邮件已发送,但实际上邮件未发送”。请帮我下面的代码。为什么邮件没有发送? GMailSender.java JSSEProvider.java MainActivity.java 没有错误出现,并且不在发件人邮件中发送邮件,在收件人邮件收件箱中也没有邮件。 问题答案: MainActivity.java 点击按钮: GMail.java SendMa