Выбор динамического диапазона соответствует неверной книге - PullRequest
0 голосов
/ 29 октября 2018

Я пишу подпрограмму, чтобы объединить около 40 производственных графиков в одну рабочую книгу. Мой код, указанный ниже, должен найти открытую рабочую книгу с именем, подобным всем графикам (подстановочный знак, используемый для учета даты), а затем создать диапазон объединения с полями, которые мне нужно агрегировать. Однако при построении диапазона объединения выбор соответствует моим «основным графикам», а не графику на эту неделю, даже если это активная рабочая книга. Этот код запускается из кнопки на главном расписании и дает мне эту проблему, однако, если я запускаю его с консоли VB в отдельном расписании, то это работает. Я не уверен, что проблема здесь.

    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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...