![]() |
|
#1
|
|||
|
|||
|
I'm creating a macro that loops through all files in a folder and does stuff if a condition is met.
The user needs a report of any files not revised because the condition wasn't met. My code is modular: a loop sub calls another sub to test the condition/do the stuff. I'd like to keep the code modular -- I don't want to modify the loop sub to receive failed-condition info back, and add to an array. Is it possible to collect data (in an array) in a standalone sub that periodically gets the data from another sub, or do I have to modify my loop sub so that it can collect the data, as it's the only sub continuously running for the duration of the work? Maybe this will help: Code:
Sub Loop()
Open a file
Call EvaluateAndDoStuff
Next file
When no more files, drop array in CollectListOfFailedFiles into text file
End Sub
Sub EvaluateAndDoStuff()
If condition not met Then
Call CollectListOfFailedFiles(strFile)
End If
End Sub
Sub CollectListOfFailedFiles(strFile as String)
Array here that collects list of failed files...
End Sub
|
|
#2
|
||||
|
||||
|
You can keep passing variables across functions but I think it is easier to declare a variable so it can be used by all the sub/functions in the module. This then persists and can be added to or read by any of the subs or functions. This illustrates the concept.
Code:
Option Explicit
Private arr1() As String, sArr As String
Sub TheLoop()
Dim i As Integer
sArr = "" 'this empties the string in case the macro was run earlier
For i = 1 To 10
TheTest i
Next i
ThePayout:
MsgBox sArr
arr1 = Split(sArr, "|")
End Sub
Sub TheTest(i As Integer)
If i Mod 2 = 0 Then
TheLogger i
End If
End Sub
Sub TheLogger(i As Integer)
If sArr = "" Then
sArr = "Item " & i
Else
sArr = sArr & "|" & "Item " & i
End If
End Sub
__________________
Andrew Lockton Chrysalis Design, Melbourne Australia |
|
#3
|
|||
|
|||
|
Hi Andrew -- A belated thank you for your reply and sample code!
|
|
|
|
Similar Threads
|
||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| Looping through a folder of PDF files and saving them as docx | ballpoint | Word VBA | 5 | 11-22-2018 05:18 AM |
Error 4605 when looping through files in folder and deleting comments
|
Peterson | Word VBA | 2 | 04-19-2018 08:45 AM |
Open csv files & copy and paste info into master file
|
gbaker | Outlook | 9 | 04-22-2016 11:02 PM |
| VBA Word - Search Within Files Containing A String - Copy Files to New Folder | jc491 | Word VBA | 0 | 01-09-2016 12:00 PM |
Move files from one folder to another
|
obasanla | Word | 1 | 09-28-2012 04:42 PM |