VBA EXCEL Прерывание выполнения макрокода с использованием массива переупорядочения столбцов - PullRequest
0 голосов
/ 20 сентября 2019

Я использую следующую кодировку для переупорядочения столбцов

Dim search As Range
Dim cnt As Integer
Dim colOrdr As Variant
Dim indx As Integer

colOrdr = Array("fullDt", "branchName", "mediumDesc", "successInd", "accountNumber", "secondaryAccountNumber", "executingPartyName", "executingPartyNumber", "tranType", "currencyAmount", "cashAmount", "mechanism", "presenterName", "transactionDescription", "foreignCurAmt", "foreignCurrencyCd", "remitterName", "beneficiaryName", "countryFlow", "transactionReferenceNumber") 

cnt = 1


For indx = LBound(colOrdr) To UBound(colOrdr)
    Set search = Rows("1:1").Find(colOrdr(indx), LookIn:=xlValues, LookAt:=xlWhole, SearchOrder:=xlByColumns, SearchDirection:=xlNext, MatchCase:=False)
    If Not search Is Nothing Then
        If search.Column <> cnt Then
            search.EntireColumn.Cut
            Columns(cnt).Insert Shift:=xlToRight
            Application.CutCopyMode = False
        End If
    cnt = cnt + 1
    End If
Next indx

Вчера все работало нормально, но когда сегодня запускаются макросы, я получаю экран с подсказкой «выполнение кода было прервано».

Если я продолжаю нажимать продолжить, код запускается и завершается, если я отлаживаю, он переходит к одной из этих двух строк кода

Columns(cnt).Insert Shift:=xlToRight
Application.CutCopyMode = False

У меня есть другие пользователи, использующие тот жемакрос без проблем, так что теперь я не уверен, является ли это проблемой кода, или просто проблемой VBA / Excel (2016) или персонального ноутбука.

Любая помощь будет высоко ценится.

Ник

1 Ответ

0 голосов
/ 20 сентября 2019

Такое прерывание происходит, например, когда комбинация клавиш «Control + Pause» используется для остановки выполнения кода.

Если комбинация клавиш нажимается несколько раз, кэш будет пытаться остановитьвыполнение такое же количество раз.

Размещение функции «DoEvents» перед циклом или непосредственно перед инструкцией «Далее» может показать, что прерывание не связано с вашим кодом.

С уважением,

Фред

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...