Я не могу заставить работать код VBA, который находит и заменяет слова в документе word.
Я могу найти слова в документе word вручную, но код vba не действует.
Здравствуйте,
Я пытаюсь создать пользовательскую форму в слове через лист ввода Excel. Моя проблема заключается в том, что код, который находит и заменяет слова в документе word, игнорируется в vba, даже когда документ word открыт (я могу вручную найти слова в документе). Открытие файла слова через VBA не является проблемой.
Может кто-нибудь показать мне, как найти и заменить слова в моем текстовом документе?
Как показано в приведенном ниже коде, я уже безуспешно пытался использовать метод With.WordDoc.Content.find.
Ниже я добавил код, чтобы найти одно из слов
Спасибо!
Sub CreateWordDocuments()
Dim DocLoc, TagName, TagValue, TemplName, FileName As String
Dim WordDoc, Wordapp As Object
Dim RownumDocLoc As Integer
Dim inputsheet As Worksheet
Set inputsheet = ThisWorkbook.Sheets("Input")
Dim templatesheet As Worksheet
Set templatesheet = ThisWorkbook.Sheets("Templates")
inputsheet.Activate
templaterow = Application.Match("Template:", Columns("B:B"), 0)
If inputsheet.Cells(templaterow, 4) = "" Then
MsgBox "Please complete the template criteria", , "No template selected"
inputsheet.Cells(1, 1).Select
Exit Sub
End If
TemplName = inputsheet.Cells(templaterow, 4)
templatesheet.Activate
RownumDocLoc = Application.Match(TemplName, Columns("F:F"), 0)
DocLoc = templatesheet.Cells(RownumDocLoc, 7) & "\" & TemplName
'Open Word Template
On Error Resume Next
Set Wordapp = GetObject("Word.Application")
If Err.Number <> 0 Then
Err.Clear
Set Wordapp = CreateObject("Word.Application")
Wordapp.Visible = True
End If
'Open Template
Set WordDoc = Wordapp.documents.Open(FileName:=DocLoc, ReadOnly:=False)
With WordDoc.Content.Find
.Text = "samplestring"
.Replacement.Text = "adjustedstring"
.wrap = wdFindContinue
.Execute Replace:=wdReplaceall
End With
End Sub
Я бы ожидал, что строка "samplestring" будет скорректирована на "Adjuststring" в файле слов. Однако при выполнении кода ничего не происходит (без ошибок).