I am writing a sub to aggregate about 40 production schedules into one workbook. My code listed below should be finding an open workbook with a name like all schedules (wild card used to account for date) and then creating a union range with the fields that I need aggregated. However, when building the union range, the selection corresponds to my "master schedule" ranges rather than that week's schedule, even though that is the active workbook. This code runs off of a button on the master schedule and gives me this issue, however if I run it from the vb console in the individual schedule, then it works. I am not sure what the issue is here.
    Sub CP_Data()
    Dim WorkCenter, Process_Order, Mat_Num, Batch_In, Qty_Needed, Desc, MRP, 
    Union_Range As Range
    Dim lRow, lRow2 As Long
    Dim wb As Workbook
    Dim wbName As String
    lRow = Cells(Rows.Count, 1).End(xlUp).Row
    lRow2 = Cells(Rows.Count, 2).End(xlUp).Row
    Set WorkCenter = ActiveSheet.Range("F3", "F" & lRow)
    Set Process_Order = ActiveSheet.Range("K3", "K" & lRow)
    Set Mat_Num = ActiveSheet.Range("M3", "M" & lRow)
    Set Batch_In = ActiveSheet.Range("O3", "O" & lRow)
    Set Qty_Needed = ActiveSheet.Range("Q3", "Q" & lRow)
    Set Desc = ActiveSheet.Range("N3", "N" & lRow)
    Set MRP = ActiveSheet.Range("W3", "W" & lRow)
    WorkCenter.Copy
    Workbooks("Master_Schedule").Activate
    Range("A" & lRow2 + 1).PasteSpecial xlPasteValues
    wbName = "all schedules"
    For Each wb In Application.Workbooks
        If wb.Name Like wbName & "*" Then
            Windows(wb.Name).activate
            wb.Sheets("Paste").Columns.EntireColumn.Hidden = False
            wb.Sheets("Paste").Rows.EntireRow.Hidden = False
            Set WorkCenter = wb.Sheets("Paste").Range("F3", "F" & lRow)
            Set Process_Order = wb.Sheets("Paste").Range("K3", "K" & lRow)
            Set Mat_Num = wb.Sheets("Paste").Range("M3", "M" & lRow)
            Set Batch_In = wb.Sheets("Paste").Range("O3", "O" & lRow)
            Set Qty_Needed = wb.Sheets("Paste").Range("Q3", "Q" & lRow)
            Set Desc = wb.Sheets("Paste").Range("N3", "N" & lRow)
            Set MRP = wb.Sheets("Paste").Range("W3", "W" & lRow)
          Set Union_Range = Union(WorkCenter, Mat_Num, Process_Order, Desc, Batch_In, Qty_Needed, MRP)
           Union_Range.Copy
          Workbooks("Master_Schedule").Activate
          Range("A" & lRow2 + 1).PasteSpecial xlPasteValues
        Else
        End If
    Next   
    End Sub
 
    