![]() |
|
|
|
#1
|
|||
|
|||
|
I'm using the code here (https://www.extendoffice.com/documen...ple-files.html) to basically "Find and Replace" in 100 documents at a time. So far, I have 8 versions for each change I need to make, and I have to run them individually for each 100 files. This is still faster than doing this all manually, but I'd love to run all 8 changes at once. In the link above, someone made several comments in reply with directions to do this, but their code didn't work for me. I think there were a cut and pasting issues. When I pasted it, there were random spaces thrown in everywhere.
I feel like I'm pressing my luck--I already got a great answer to my first question here today. Forum contributors are so often my saving grace. I really appreciate the time you all put in. I hope to be as skilled someday to pass on the favor. |
|
#2
|
||||
|
||||
|
Create the 8 functions that you require and call them sequentially from your loop. You haven't said what the changes are, but if they are text replacements, you can use the Find and Replace (with table defined pairs) option in
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
|
#3
|
|||
|
|||
|
They are text replacements. That's a pretty cool add-in you've created!
I'd still like to know how to call the functions sequentially in the loop, though. I took a Introduction to Visual Basic class a few years ago, but I have trouble parsing out big chunks of code--especially the kind using loops! I copied the text from the URL I included exactly for each variation, changing the name each time, CommandButton1_Click(), CommandButton2_Click(), etc. Part of my trouble is I don't know how to separate the part of the code that lets me select which files to run the code on from the part where I put in the text replacements. |
|
#4
|
||||
|
||||
|
A similar approach, that doesn't require an addin is:
Code:
Sub UpdateDocuments()
Application.ScreenUpdating = False
Dim strFolder As String, strFile As String, strDocNm As String, wdDoc As Document
strDocNm = ActiveDocument.FullName
strFolder = GetFolder
If strFolder = "" Then Exit Sub
strFile = Dir(strFolder & "\*.doc", vbNormal)
While strFile <> ""
If strFolder & "\" & strFile <> strDocNm Then
Set wdDoc = Documents.Open(FileName:=strFolder & "\" & strFile, AddToRecentFiles:=False, Visible:=False)
With wdDoc
Call FindRep(wdDoc, "String to Find", "String for Replacement")
.Close SaveChanges:=True
End With
End If
strFile = Dir()
Wend
Set wdDoc = Nothing
Application.ScreenUpdating = True
End Sub
Function GetFolder() As String
Dim oFolder As Object
GetFolder = ""
Set oFolder = CreateObject("Shell.Application").BrowseForFolder(0, "Choose a folder", 0)
If (Not oFolder Is Nothing) Then GetFolder = oFolder.Items.Item.Path
Set oFolder = Nothing
End Function
Sub FindRep(wdDoc As Document, StrFind As String, StrRep As String)
With wdDoc.Range
With .Find
.ClearFormatting
.Replacement.ClearFormatting
.Text = StrFind
.Replacement.Text = StrRep
.Forward = True
.Wrap = wdFindContinue
.Format = False
.MatchCase = False
.MatchWholeWord = False
.MatchWildcards = False
.MatchSoundsLike = False
.MatchAllWordForms = False
.Execute Replace:=wdReplaceAll
End With
End With
Call FindRep(wdDoc, "String to Find", "String for Replacement") as you need. Elsewhere on this forum you'll find implementations that use Excel workbooks to hold the Find/Replace strings - and even one that incorporates the use of wildcards, text formatting, and so on and another that processes sub-folders as well. See, for example: https://www.msofficeforums.com/word-...html#post34254 https://www.msofficeforums.com/word-...html#post93796 https://www.msofficeforums.com/word-...html#post70765 https://www.msofficeforums.com/word-...html#post31849
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
a code to add altering time to cells
|
tesoke | Excel Programming | 3 | 12-17-2015 12:31 PM |
| Deleting a spare page without altering format | SoLongKid | Word | 3 | 01-07-2015 11:34 PM |
Insert the page before table of content without altering it
|
kbhalakiya | Word | 2 | 08-29-2012 03:53 AM |
| Can't make code work. | gbaker | Excel Programming | 2 | 07-13-2012 10:01 PM |
Altering Column Widths on Two Col Page
|
abrogard | Word | 2 | 12-30-2010 06:03 AM |