我想在Word上用一个大于255个单词的段替换一个参考单词[Property Manager Notes]。会有更多这样的参考文献。
有人可以帮忙吗。
以下是获得想法的图片:
这是我正在使用的代码
Dim objWord
Dim objDoc
Dim oCell As Integer
Sub Replacing_excel_word()
Sheets("Work").Select
Set objWord = CreateObject("Word.Application")
Set objDoc = objWord.Documents.Open("C:\Users\Sai\Desktop\xyz.docx")
objWord.Visible = True
objWord.Activate
For oCell = 1 To 50
from_text = Sheets("Work").Range("A" & oCell).Value
to_text = Sheets("Work").Range("B" & oCell).Value
With objWord.ActiveDocument
Set myRange = .Content
With myRange.Find
.Execute FindText:=from_text, ReplaceWith:=to_text, Replace:=1
End With
End With
Next oCell
End Sub
答案 0 :(得分:0)
我刚刚解决了这个问题。在代码的末尾,您需要创建一个函数:
Function Replacement255(wRng, field, content)
With wRng.Find
.text = field '>> enter the text to be searched and replaced
.MatchWholeWord = False
.MatchWildcards = False
If Len(content) > 255 Then
.Wrap = wdFindContinue
cnt = 0
Do
strFragment1 = Mid(content, cnt + 1, 230)
cnt = cnt + 230
If Len(strFragment1) > 0 Then strFragment1 = strFragment1 & "@@@@@@@@@@"
.Replacement.text = strFragment1
.Execute , , , , , , , , , , wdReplaceOne
.text = "@@@@@@@@@@"
Loop While Len(strFragment1) > 0
Else
.Replacement.text = text '>> enter column location of the text from excel
.Wrap = wdFindStop
.Execute Replace:=wdReplaceOne
End If
End With
End Function
然后,在您的代码中,您需要使用此功能:
Replacement255 wRng, field, content.Value
其中:
字段:要替换ex的文本。 " #Enter here#"
内容:用ex替换的文本。 Sheet1.Cells(MyRow, "M")
我希望它可以帮到你!