微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

VBA Word搜索一行并替换其中的一部分

如何解决VBA Word搜索一行并替换其中的一部分

我必须为我的同事快速编写一些程序,而我在以下内容上已经停留了一段时间。目的是使用来自MS Excel的数据来填写MS Word模板。这是我最近遇到的问题。
MS Word模板如下:

enter image description here

该想法是在左列中搜索(例如,有机体),上一行,然后用MS Excel中的相应值替换右列(单击此处以输入文本)。但是我是VBA的新手,不确定如何正确编程。我目前的代码是这一代码,它找到正确的左字符串,并将其替换为字符串+ MS Excel值,但不替换右列。

Sub SearchAndReplace(inputKey As String,inputvar As String)
With Selection.Find
  .Text = inputKey
  .Replacement.Text = inputvar
  .Execute Replace:=wdReplaceOne,Forward:=True,_
  Wrap:=wdFindStop
End With    
End Sub

非常感谢您的帮助。如果不清楚,请随时询问。 预先谢谢你。

解决方法

您发布的屏幕快照无法清楚显示项目是否在表格中,但确实显示了内容控件。

如果您已经正确设置了带有标题和/或标签的内容控件,则可以使用以下方式:

Sub AddTextToContentControl(targetDoc As Document,ccTitle As String,textToAdd As String)
  Dim ctrl As ContentControl
  Set ctrl = targetDoc.SelectContentControlsByTitle(ccTitle).Item(1)
  ctrl.Range.Text = textToAdd
End Sub

Sub AddTextToContentControlByTag(targetDoc As Document,ccTag As String,textToAdd As String)
  Dim ctrl As ContentControl
  Set ctrl = targetDoc.SelectContentControlsByTag(ccTag).Item(1)
  ctrl.Range.Text = textToAdd
End Sub

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。