Почему мой макрос вызывает «Excel ожидает, когда другое приложение выполнит действие OLE», когда он не использует другое приложение / файл? - PullRequest
0 голосов
/ 28 ноября 2018

Я видел много сообщений об этой ошибке действия OLE, но разница здесь в том, что выполняемый мной макрос не импортирует / не экспортирует какие-либо данные и не запускает действия в любой другой программе (по крайней мере,не преднамеренно), и это то, что я пришел, чтобы узнать, как правило, причина.Вот VBA, который генерирует ошибку:

Sub DeleteRows()
    Dim varResponse As Variant

    varResponse = MsgBox("This will permanently delete selected rows. Do you wish to continue?", vbYesNo, "WARNING")
    If varResponse <> vbYes Then Exit Sub

    Set Rs = Selection

    For i = 1 To Selection.Rows.Count
        If Range(Rs.Address).EntireRow.Cells(i, 12) <> "d" Then
            MsgBox "Selection contains cells that can not be removed. Revise selection.", vbExclamation, "Invalid Selection"
            Exit Sub
        End If
    Next

    For Each Worksheet In ActiveWorkbook.Worksheets
        Worksheet.Unprotect
    Next

    ActiveWorkbook.Worksheets("backup_estimate").Cells.Clear
    ActiveWorkbook.Worksheets("backup_actual").Cells.Clear
    ActiveWorkbook.Worksheets("backup_invoice").Cells.Clear

    sourceOld = Selection(1).Row
    sourceSize = Selection.Rows.Count

    Worksheets("Estimate").Range(Rs.Address).EntireRow.Copy Destination:=Worksheets("backup_estimate").Range("A1")
    Worksheets("Actual Cost").Range(Rs.Address).EntireRow.Copy Destination:=Worksheets("backup_actual").Range("A1")
    Worksheets("Invoice Tracking").Range(Rs.Address).EntireRow.Copy Destination:=Worksheets("backup_invoice").Range("A1")

    Sheets(Array("Estimate", "Actual Cost", "Invoice Tracking")).Select
    Range(Rs.Address).EntireRow.Select
    Selection.Delete Shift:=x1Up
    ActiveSheet.Select

    For Each Worksheet In ActiveWorkbook.Worksheets
        Worksheet.Protect
    Next
End Sub

Цель макроса - удалить тот же набор данных и строк на 3 из 6 листов в этой конкретной книге и переместить все оставшиеся данные вверх.,

При запуске макроса он чаще всего останавливает работу экземпляра Excel и выдает эту ошибку примерно через 10-20 секунд (это происходит не каждый раз).Для справки: «backup_estimate» и другие резервные копии являются строго временным хранилищем данных для использования другим настроенным мной макросом «отменить последнее действие».

У меня есть один подключаемый модуль, который я периодически использую(синий луч), но я столкнулся с этой ошибкой, когда все плагины отключены И отмечена опция «игнорировать другие приложения, использующие DDE» (одно из исправлений, предложенных в другом посте).

...