Home |
Search |
Today's Posts |
#1
Posted to microsoft.public.excel.programming
|
|||
|
|||
adding arrays from multiple workbooks
Hi,
I have a number of workbooks in a folder (number varies) which I have to open and add the values of the same range ("F15:M34") in each workbook into a summary workbook. The code below works, but to me appears long winded, is there an easier more efficient way of writing this code. This is the first time I have had a go at using arrays. thanks in advance Neil Dim myValues(160) As Long Dim MyPath As String Application.ScreenUpdating = False Application.DisplayAlerts = False Application.EnableEvents = False MyPath = ActiveWorkbook.Path On Error Resume Next Set wbCodeBook = ThisWorkbook With Application.FileSearch .NewSearch .LookIn = MyPath .FileType = msoFileTypeExcelWorkbooks If .Execute 0 Then For lCount = 2 To .FoundFiles.Count Set wbResults = Workbooks.Open(Filename:=.FoundFiles(lCount), UpdateLinks:=0) For A = 1 To 20 myValues(A) = myValues(A) + ActiveSheet.Range("F" & 14 + A).Value Next A For B = 21 To 40 myValues(B) = myValues(B) + ActiveSheet.Range("G" & -6 + B).Value Next B For c = 41 To 60 myValues(c) = myValues(c) + ActiveSheet.Range("H" & -26 + c).Value Next c For d = 61 To 80 myValues(d) = myValues(d) + ActiveSheet.Range("I" & -46 + d).Value Next d For e = 81 To 100 myValues(e) = myValues(e) + ActiveSheet.Range("J" & -66 + e).Value Next e For f = 101 To 120 myValues(f) = myValues(f) + ActiveSheet.Range("K" & -86 + f).Value Next f For g = 121 To 140 myValues(g) = myValues(g) + ActiveSheet.Range("L" & -106 + g).Value Next g For h = 141 To 160 myValues(h) = myValues(h) + ActiveSheet.Range("M" & -126 + h).Value Next h 'Close the workbook you opened wbResults.Close SaveChanges:=True Next lCount End If End With On Error GoTo 0 Application.ScreenUpdating = True Application.DisplayAlerts = True Application.EnableEvents = True For i = 1 To 20 ActiveSheet.Range("F" & 14 + i).Value = myValues(i) Next i For j = 21 To 40 ActiveSheet.Range("g" & -6 + j).Value = myValues(j) Next j For k = 41 To 60 ActiveSheet.Range("h" & -26 + k).Value = myValues(k) Next k For l = 61 To 80 ActiveSheet.Range("i" & -46 + l).Value = myValues(l) Next l For m = 81 To 100 ActiveSheet.Range("j" & -66 + m).Value = myValues(m) Next m For n = 101 To 120 ActiveSheet.Range("k" & -86 + n).Value = myValues(n) Next n For o = 121 To 140 ActiveSheet.Range("l" & -106 + o).Value = myValues(o) Next o For p = 141 To 160 ActiveSheet.Range("m" & -126 + p).Value = myValues(p) Next p |
#2
Posted to microsoft.public.excel.programming
|
|||
|
|||
adding arrays from multiple workbooks
no worries, I have worked it out.
Set chkRange = ActiveSheet.Range("F15:m34") For A = 1 To 160 myValues(A) = myValues(A) + chkRange(A).Value Next A "Neil Eves" wrote in message ... Hi, I have a number of workbooks in a folder (number varies) which I have to open and add the values of the same range ("F15:M34") in each workbook into a summary workbook. The code below works, but to me appears long winded, is there an easier more efficient way of writing this code. This is the first time I have had a go at using arrays. thanks in advance Neil Dim myValues(160) As Long Dim MyPath As String Application.ScreenUpdating = False Application.DisplayAlerts = False Application.EnableEvents = False MyPath = ActiveWorkbook.Path On Error Resume Next Set wbCodeBook = ThisWorkbook With Application.FileSearch .NewSearch .LookIn = MyPath .FileType = msoFileTypeExcelWorkbooks If .Execute 0 Then For lCount = 2 To .FoundFiles.Count Set wbResults = Workbooks.Open(Filename:=.FoundFiles(lCount), UpdateLinks:=0) For A = 1 To 20 myValues(A) = myValues(A) + ActiveSheet.Range("F" & 14 + A).Value Next A For B = 21 To 40 myValues(B) = myValues(B) + ActiveSheet.Range("G" & -6 + B).Value Next B For c = 41 To 60 myValues(c) = myValues(c) + ActiveSheet.Range("H" & -26 + c).Value Next c For d = 61 To 80 myValues(d) = myValues(d) + ActiveSheet.Range("I" & -46 + d).Value Next d For e = 81 To 100 myValues(e) = myValues(e) + ActiveSheet.Range("J" & -66 + e).Value Next e For f = 101 To 120 myValues(f) = myValues(f) + ActiveSheet.Range("K" & -86 + f).Value Next f For g = 121 To 140 myValues(g) = myValues(g) + ActiveSheet.Range("L" & -106 + g).Value Next g For h = 141 To 160 myValues(h) = myValues(h) + ActiveSheet.Range("M" & -126 + h).Value Next h 'Close the workbook you opened wbResults.Close SaveChanges:=True Next lCount End If End With On Error GoTo 0 Application.ScreenUpdating = True Application.DisplayAlerts = True Application.EnableEvents = True For i = 1 To 20 ActiveSheet.Range("F" & 14 + i).Value = myValues(i) Next i For j = 21 To 40 ActiveSheet.Range("g" & -6 + j).Value = myValues(j) Next j For k = 41 To 60 ActiveSheet.Range("h" & -26 + k).Value = myValues(k) Next k For l = 61 To 80 ActiveSheet.Range("i" & -46 + l).Value = myValues(l) Next l For m = 81 To 100 ActiveSheet.Range("j" & -66 + m).Value = myValues(m) Next m For n = 101 To 120 ActiveSheet.Range("k" & -86 + n).Value = myValues(n) Next n For o = 121 To 140 ActiveSheet.Range("l" & -106 + o).Value = myValues(o) Next o For p = 141 To 160 ActiveSheet.Range("m" & -126 + p).Value = myValues(p) Next p |
Reply |
Thread Tools | Search this Thread |
Display Modes | |
|
|
Similar Threads | ||||
Thread | Forum | |||
Adding a Row to Multiple Workbooks | Excel Discussion (Misc queries) | |||
Arrays - declaration, adding values to arrays and calculation | Excel Programming | |||
Adding multiple workbooks together | Excel Discussion (Misc queries) | |||
adding certain cells in multiple worksheets in multiple workbooks | Excel Worksheet Functions | |||
Adding cells from multiple workbooks | Excel Discussion (Misc queries) |