View Single Post
  #2   Report Post  
Posted to microsoft.public.excel.programming
Claus Busch Claus Busch is offline
external usenet poster
 
Posts: 3,872
Default Open four Wbooks, copy four columns from each to Master Wbook

Hi Howard,

Am Sun, 1 Dec 2013 23:51:19 -0800 (PST) schrieb Howard:

With copyArr(i)
Set rangeA = Range("A1:A" & lCol1)


you did not refer to a sheet.

Try:

Sub MondayMornCopy2()

Dim lCol1 As Long, lCol2 As Long, lCol3 As Long, lCol4 As Long
Dim rangeA As Variant, rangeD As Variant, rangeF As Variant, rangeJ As
Variant
Dim copyArr As Variant
Dim i As Long

Const myPath = "C:\Users\Howard Kittle\Documents\"
copyArr = Array("Idaho", "Montana", "Wyoming", "Nebraska")

Application.ScreenUpdating = False

For i = LBound(copyArr) To UBound(copyArr)
Workbooks.Open myPath & copyArr(i) & ".xlsm"
With ActiveWorkbook.Sheets("Sheet1")
lCol1 = .Cells(.Rows.Count, 1).End(xlUp).Row
lCol2 = .Cells(.Rows.Count, 4).End(xlUp).Row
lCol3 = .Cells(.Rows.Count, 6).End(xlUp).Row
lCol4 = .Cells(.Rows.Count, 10).End(xlUp).Row

rangeA = .Range("A1:A" & lCol1)
rangeD = .Range("D1:D" & lCol2)
rangeF = .Range("F1:F" & lCol3)
rangeJ = .Range("J1:J" & lCol4)

Workbooks("Master.xlsm").Sheets("Sheet1") _
.Range("A" & Rows.Count).End(xlUp)(2).Resize(rowsize:=lCol1) =
rangeA
Workbooks("Master.xlsm").Sheets("Sheet1") _
.Range("D" & Rows.Count).End(xlUp)(2).Resize(rowsize:=lCol2) =
rangeD
Workbooks("Master.xlsm").Sheets("Sheet1") _
.Range("F" & Rows.Count).End(xlUp)(2).Resize(rowsize:=lCol3) =
rangeF
Workbooks("Master.xlsm").Sheets("Sheet1") _
.Range("J" & Rows.Count).End(xlUp)(2).Resize(rowsize:=lCol4) =
rangeJ
ActiveWorkbook.Close savechanges:=True
End With
Next
Application.ScreenUpdating = True
End Sub


Regards
Claus B.
--
Win XP PRof SP2 / Vista Ultimate SP2
Office 2003 SP2 /2007 Ultimate SP2