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

时间:2020-10-22 19:07:52

标签: vba replace ms-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

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

1 个答案:

答案 0 :(得分:0)

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

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

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