Try this amended code:
Sub OpenSubfoldersFileUpdate()
Dim strFile As String
Dim objFSO, destRow As Long
Dim mainFolder, mySubFolder
Dim ws1, ws2 As Worksheet
Set ws1 = Worksheets(1)
Set objFSO = CreateObject("Scripting.FileSystemObject")
mFolder = ws1.Range("B12").Value
If mFolder = 0 Then
MsgBox " Address Missing"
Else: Set mainFolder = objFSO.GetFolder(mFolder)
End If
For Each mySubFolder In mainFolder.subFolders
strFile = Dir(mySubFolder & "\*.csv*")
Do While strFile <> ""
If ws1.Range("H12").Value = 0 Then
MsgBox "Missing Value!"
ElseIf ws1.Range("H12").Value >= 1 And ws1.Range("H12").Value <= 5 Then
Workbooks.Open mySubFolder & "\" & strFile
Set ws2 = ActiveWorkbook.ActiveSheet
End If
If ws1.Range("H12").Value = 1 Then ws2.Range("A2:AT2").Copy
If ws1.Range("H12").Value = 2 Then ws2.Range("A2:AT3").Copy
If ws1.Range("H12").Value = 3 Then ws2.Range("A2:AT4").Copy
If ws1.Range("H12").Value = 4 Then ws2.Range("A2:AT5").Copy
If ws1.Range("H12").Value = 5 Then ws2.Range("A2:AT6").Copy
Set ws2 = Nothing
Application.DisplayAlerts = False
erow = ws1.Cells(rows.Count, 2).End(xlUp).Offset(1, 0).row
ws1.Paste Destination:=ws1.Cells(erow, 2)
ws1.Range(Cells(erow, 1), ws1.Cells(rows.Count, 2).End(xlUp).Offset(, -1)).Value = strFile
ActiveWorkbook.Close
strFile = Dir
Loop
Next
End Sub
Bookmarks