#1
|
|||
|
|||
Failed to apply macro to files in folder
Hey,
First of all I want to mention my bad English, I hope you can understand me anyway. Well, I try to run macro on multiple files in a folder, on a particular computer it works well, but on another computer the macro only runs on one file in a folder. I have debugged using F8 and I see that the macro identifies the files, that is, it enters the loop 3 times as many files in the folder. I have run the search command on each file from the files in its own right and it works well - which tells me that the search code is correct. Where can this be the problem ?! Thank you! It is worth noting that I took this code from here Code:
Sub UpdateDocuments() Application.ScreenUpdating = False Dim strFolder As String, strFile As String, wdDoc As Document strFolder = GetFolder If strFolder = "" Then Exit Sub strFile = Dir(strFolder & "\*.docx", vbNormal) While strFile <> "" Set wdDoc = Documents.Open(FileName:=strFolder & "\" & strFile, AddToRecentFiles:=False, Visible:=False) With wdDoc With Selection.Find .ClearFormatting .Format = True .text = "" .Font.NameBi = "Arial" .Font.SizeBi = 11 .Replacement.text = "" .Replacement.Font.NameBi = "david" .Replacement.Font.SizeBi = 20 .Wrap = wdFindContinue .Execute Replace:=wdReplaceAll End With .Close SaveChanges:=True End With 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, "Select a folder", 0) If (Not oFolder Is Nothing) Then GetFolder = oFolder.Items.Item.Path Set oFolder = Nothing End Function |
#2
|
||||
|
||||
Can we assume that the documents are formatted in a right to left language (presumably Hebrew)? NameBi and SizeBi are RTL related parameters.
Add the line Code:
Debug.Print .FullName Code:
With wdDoc
__________________
Graham Mayor - MS MVP (Word) (2002-2019) Visit my web site for more programming tips and ready made processes www.gmayor.com |
#3
|
|||
|
|||
The documents were indeed written in Hebrew.
I'll try and update. Thank you! |
#4
|
|||
|
|||
I did what you said, the output is the names of all the files in the folder...
Is there a chance? And thank you again! |
#5
|
|||
|
|||
I will redefine the problem according to what I have discovered.
The macro only works on the active document, if none of the documents in the folder is the active document, it does not override any of the active documents. The problem can now be focused: What can cause VBA to not run on inactive documents? |
#6
|
||||
|
||||
Try:
Code:
Sub UpdateDocuments() Application.ScreenUpdating = False Dim strFolder As String, strFile As String, wdDoc As Document strFolder = GetFolder If strFolder = "" Then Exit Sub strFile = Dir(strFolder & "\*.docx", vbNormal) While strFile <> "" Set wdDoc = Documents.Open(FileName:=strFolder & "\" & strFile, AddToRecentFiles:=False, Visible:=False) With wdDoc With .Content.Find .ClearFormatting .Replacement.ClearFormatting .Format = True .Text = "" .Font.NameAscii = "Arial" .Font.SizeBi = 11 .Replacement.Text = "" .Replacement.Font.NameAscii = "David" .Replacement.Font.SizeBi = 20 .Wrap = wdFindContinue .Execute Replace:=wdReplaceAll End With .Close SaveChanges:=True End With 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, "Select a folder", 0) If (Not oFolder Is Nothing) Then GetFolder = oFolder.Items.Item.Path Set oFolder = Nothing End Function
__________________
Cheers, Paul Edstein [Fmr MS MVP - Word] |
#7
|
|||
|
|||
Thank you!
it worked !!! |
|
Similar Threads | ||||
Thread | Thread Starter | Forum | Replies | Last Post |
Macro to change all text color to black in all docx files in a selected folder | joewoods | Word VBA | 13 | 05-16-2016 06:29 PM |
Macro to change/convert/delete txt files in folder+subfolders | NoS | Word VBA | 4 | 03-03-2016 12:10 PM |
Macro to replace SSN in all files within a folder | caj1980 | Word VBA | 7 | 09-11-2014 04:17 PM |
macro to change name of files in a folder in order | expert4knowledge | Word VBA | 5 | 07-10-2014 03:54 PM |
Word Macro - change date in footer for all files in a folder | patidallas22 | Word VBA | 2 | 03-09-2012 08:14 AM |