Копирование вставки из нескольких листов нарушается при использовании ссылки на несколько листов рабочих книг? - PullRequest
0 голосов
/ 20 февраля 2020

Проблема:

Когда я нажимаю на Button5_click. Это приводит меня к ошибке ниже одной за одной

  1. В Excel не хватило ресурсов при попытке вычислить одну или несколько формул. В результате эти формулы не могут быть оценены.

  2. Сбой метода копирования класса Range

Описание кода :

  1. Кнопка «Создано действие» для выполнения этой операции вставки копии с использованием нескольких рабочих книг с отдельными листами

  2. В основном есть 2 рабочие книги: orderingFunctionalitySheet & billingFunctionalitySheet, который имеет Ordering_Attribute_Ref & Billing_Functionality_Ref. Он будет использоваться для получения атрибутов. Используя один из атрибутов, он временно помещает записи в таблицу Temp на Master. Таким образом, используя циклы, он будет принимать каждый атрибут, а затем передавать его Temp лист

    Sub Button5_Click ()

            Dim funtionalityWorkbookName, optizedWorkbookName, orderingWorkbookName As String
    
            Application.ScreenUpdating = False
            Application.Calculation = xlCalculationManual
            Application.EnableEvents = False
    
            'funtionalityWorkbookName = ThisWorkbook.Sheets("Optimized Scenario").Cells(2, 9).Value
            optizedWorkbookName = ThisWorkbook.Sheets("Optimized Scenario").Cells(2, 7).Value
            orderingWorkbookName = ThisWorkbook.Sheets("Optimized Scenario").Cells(2, 11).Value
    
            'Set funtionalityWorkbook = Workbooks.Open(funtionalityWorkbookName, True, True)
            'DoEvents
            Set optimizedWorkbook = Workbooks.Open(optizedWorkbookName, False, False)
            DoEvents
            Set orderingWorkbook = Workbooks.Open(orderingWorkbookName, False, False)
            DoEvents
    
            'funtionalityWorkbook.Windows(1).Visible = False
            DoEvents
            optimizedWorkbook.Windows(1).Visible = False
            DoEvents
            orderingWorkbook.Windows(1).Visible = False
    
            Set orderingFunctionalitySheet = orderingWorkbook.Sheets("Ordering_Attribute_Ref")
            Set billingFunctionalitySheet = optimizedWorkbook.Sheets("Billing_Functionality_Ref")
            Set masterTempSheet = ThisWorkbook.Sheets("Temp")
            Set optimizedScenarioListSheet = optimizedWorkbook.Sheets("ALL")
            Set orderingOptimizedScenarioSheet = orderingWorkbook.Sheets("ALL")
            'Set level3OptimizedScenarioSheet = orderingWorkbook.Sheets("Level 3 Scenario")
            Set masterHandleScenarioUpdatesHistory = ThisWorkbook.Sheets("UpdateMasterHistory")
    
            ufProgressBar.ShowProgressBox
            Call updateOrderBillingScenario
    

    Sub updateOrderBillingScenario ()

    ufProgressBar.SetProgressMsg ("Step 1 of 18" + vbNewLine + "Updating Funtionality Drop for Ordering Scenario !")
    
    masterTempSheet.Range("A1:CC5000").Clear
    masterHandleScenarioUpdatesHistory.Range("AM2:AN1000").Clear
    
    Call updateOrderingAttribute(1, 49, 2)
    

Sub updateOrderingAttribute(attributeRefColumnIndex As Integer, attributeValueColumnIndex As Integer, attributeRefDropColumnIndex As Integer)

    Dim funtionalityIndex As Long
    Dim funtionalityName As String
    Dim funtionalityDrop, newDrop, oldDrop As String
    Dim tempSheetIndex As Integer
    Dim optimizedScenarioName As String
    Dim optimizedTestPlanRowNumber As Integer
    Dim errorIndex As Integer

    funtionalityIndex = 2
    tempSheetIndex = 2
    optimizedScenarioName = ""
    errorIndex = 2

    Do While orderingFunctionalitySheet.Cells(funtionalityIndex, attributeRefColumnIndex).Value <> ""
        funtionalityName = orderingFunctionalitySheet.Cells(funtionalityIndex, attributeRefColumnIndex).Value
        funtionalityName = Trim(funtionalityName)
        tempfuntinalityName = "*" + funtionalityName + "*"
        funtionalityDrop = orderingFunctionalitySheet.Cells(funtionalityIndex, attributeRefDropColumnIndex).Value


        With orderingOptimizedScenarioSheet
            .AutoFilterMode = False
            With .Range("A1:AY10000")
                .AutoFilter Field:=48, Criteria1:=Array(tempfuntinalityName), Operator:=xlFilterValues
                ***.SpecialCells(xlCellTypeVisible).Copy Destination:=masterTempSheet.Range("A1")***
            End With
            '.AutoFilterMode = False
        End With
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...