Поиск-замена кода через VBA игнорируется - PullRequest
1 голос
/ 10 июня 2019

Я не могу заставить работать код 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" в файле слов. Однако при выполнении кода ничего не происходит (без ошибок).

...