У меня есть этот макрос MS Word для запуска всех файлов docx в папке (без их открытия, поскольку Visible = false) и вызова другого макроса для каждого файла.
Второй макрос называется «Sub ApplyFormat ()», и, как вы можете видеть, я использую With Selection
, поэтому, когда макрос вызывает второй макрос, он не делает
Любые изменения, я думаю, потому что мой второй макрос использует «Выбор» и использовать Выбор, я думаю, работает, только если файл открыт и виден.
Я пытаюсь открыть каждый документ с помощью Visible: = False для повышения производительности.
Как я могу это исправить? Возможно, использую некоторую переменную вместо «Selection» в моем втором макросе, но я не знаю как.
Спасибо за любую помощь.
Sub FormatAllDocxInFolder()
Dim sFolder As String, sFile As String, wdDoc As Document
sFolder = "C:\PATH\TO\FILES"
sFile = Dir(sFolder & "\*.docx", vbNormal)
While sFile <> ""
Set wdDoc = Documents.Open(FileName:=sFolder & "\" & sFile, AddToRecentFiles:=False, Visible:=False)
With wdDoc
Call ApplyFormat
.Close SaveChanges:=True
End With
strFile = Dir()
Wend
Set wdDoc = Nothing
End Sub
Sub ApplyFormat()
Selection.HomeKey wdStory
With Selection.Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = "abc"
.Replacement.Text = " def"
.Wrap = wdFindContinue
.Execute Replace:=wdReplaceAll
End With
End Sub