繁体   English   中英

VBA,正则表达式:从 Word 文档中识别和复制文本以在模板中的新文档中使用

[英]VBA, Regex: Identifying and copy text from Word doc to use in new document from template

我正在为我的组织开展一个迁移项目,该项目将我们的员工从 Word Perfect Office 套件过渡到 Microsoft Office,特别是 WordPerfect 到 Word。 不幸的是,Word 中的宏非常依赖于不能转移到 Word 的宏。 虽然正在逐步取得进展,但我遇到了一些障碍,我不确定我可以使用 vba、宏或正则表达式克服这些障碍,尤其是因为我对它们中的任何一个都不精通。

  1. 有一个非常常用的正式信函模板,可以创建发送给外部联系人。 这通常是将新客户添加到我们的服务系统的第一步或第二步。 在这封信中,一位秘书在页面顶部添加了一个自动文本条目,然后是几次输入键。 紧接着,以类似于以下的格式添加 1 到 3 或 4 个地址:

     Letter Head block of Primary account handler (inserted by autotext) (Multiple Blank Lines) (blank line)(Each line of address is ended with the enter keystroke) 1st Company Name (If exists)(Sometimes includes right-align tabstop for email) Attn to or Individual Street Address Suite or Apt # (If exists) City, State, ZIP-#### (The zip extension is not always included) (blank line) 2nd Company Name (If exists)(Sometimes includes right-align tabstop for email) Attn to or Individual Street Address Suite or Apt # (If exists) City, State, ZIP-#### (The zip extension is not always included) (blank line) 3rd Address Block and so on... (blank line) (blank line) Dear, Primary Addressee of Letter

由于这封信或多或少是一个过程的开始,它包含需要使用一两次的数据。 目前在 Word 中,我可以转到 Mailings > Envelopes 并调出有时会从文档中提取第一个地址的窗口。 它并不总是按照输入的方式拉出整个地址块,并且一旦打印第一个信封。 用户必须一次一个地手动将剩余的地址块复制并粘贴到新的信封和标签框中。 我们的信封是预先印好的,只需要包含信件中的各个地址。

我想尝试做的是以下任何一个选项或它们的组合:

  1. 允许用户手动突出显示文本,触发宏根据粘贴了所选文本的模板打开一个新文档。如果我可以将边距和其他页面设置属性定义为,我也很乐意打开一个新的空白文档它被创建,然后粘贴到选定的地址块中。 我只知道使用“Documents.Add Template:="path to template”来打开基于模板的新文档。我不知道如何粘贴突出显示的文本。

  2. 创建一个正则表达式模式,该模式可以通过邮政编码识别和选择空行后面的每个地址。 我能够找到一个正则表达式模式来识别邮政编码和后面的可选 4 位数字

    (\\d{5}(-\\d{4})?)

    我不确定如何扩展范围以包含使用空行作为边界的邮政编码之前的所有信息行。

  3. 对我来说锦上添花的是使用正则表达式模式来查找每个地址块,然后运行一个循环来打开具有定义属性的新文档或基于模板的新文档,然后在每个地址的末尾插入一个分页符. 不过,最后一个地址不应该有分页符。

如果有人能够帮助我解决这个问题,我将非常乐意通过向您的事业或代表您的组织捐款的方式感谢您。 编程从来都不是我的强项,这个挑战让我夜不能寐,试图弄清楚。

这是一个非常广泛的问题——对于 SO 来说可能太宽泛了。
对于第 2 项,怎么样
(\\r\\r.+\\d{5}(-\\d{4})?)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM