我想通过Excel循环,其中列A保存我想要在Word中找到的文本。 B列在找到文本的段落结束后保留我想要粘贴的内容。通过Excel循环,在Word中键入值,粘贴Excel字符串
在Word VBA中工作时,查找文本正在工作并移动到段落结尾。但是当我移动到Excel VBA时,find方法似乎没有做任何事情。
Sub UpdateWordDoc1()
Dim mywb As Excel.Worksheet
Set mywb = ActiveWorkbook.ActiveSheet
Dim wdDoc As Object, wdApp As Object
Dim questiontext As String
Dim oSearchRange
On Error Resume Next
Set wdDoc = CreateObject("C:\mydoc.docx")
Set wdApp = wdDoc.Application
Set oSearchRange = wdDoc.Content
With mywb
For i = 2 To .Range("A6000").End(xlUp).Row
questiontext = .Range("A" & i).Value
.Range("B" & i).Copy
Set blabla = oSearchRange.Find.Execute.Text = questiontext
blabla.Select
Selection.movedown unit:=wdparagraph
Selection.moveleft unit:=wdcharacter
Selection.PasteAndFormat (wdFormatOriginalFormatting)
Next i
End With
'wdDoc.Close savechanges:=True
Set wdDoc = Nothing
Set wdApp = Nothing
End Sub
已添加到Word对象库的引用? Excel不知道(例如)'wdFormatOriginalFormatting'的值是... –
是的。参考在那里,代码运行良好。它只是没有做任何事情。我的直觉是它围绕着选择的东西。我不认为该计划正在将“主动”转移到Word,并允许它控制和查找问题文本,然后采取行动。但是,显然我不确定。当我遍历代码时,没有任何反应,例如,在我想要看到光标实际移动的移动或移动后。 – strahanstoothgap
代码'Selection.movedown'(和类似的东西)将操纵Excel的选择,而不是Word的。你可以通过使用'wdApp.Selection'或'wdDoc.ActiveWindow.Selection'或类似的东西来解决这个问题。 – xidgel