После удаления столбца vba производительность go вниз - PullRequest
0 голосов
/ 04 февраля 2020

У меня есть подпункт, который обнаруживает дубликаты на листе (я использую 2 цикла вокруг ключевого столбца), и еще один, который удаляет столбец, выбранный пользователем (я использую команду FullColumn.Delete). Обе подводные лодки независимы. Упрощенный код:

Первый Sub:

 For i = myHeader + 1 To last_row
    count = 0
    For j = myHeader + 1 To last_row
        If mySheet.Cells(j, 1) = mySheet.Cells(i, 1) Then
            count = count + 1
            If count = 2 Then
                MsgBox "Duplicate"
            End if
        End if
    Next j
 Next i

Второй Sub:

ThisWorkbook.Sheets(myTable).Columns(myIndexCol).EntireColumn.Delete

Первый код выполняется очень быстро, так как в l oop всего 10 строк , Второй саб также работает нормально, удаляя выбранный столбец, как и ожидалось. Однако после выполнения второй подпрограммы, если я выполню первую подпрограмму снова, она будет работать очень медленно. Если я закрою и открою книгу, первая подпрограмма снова будет работать быстро, пока, конечно, я не выполню вторую.

Есть идеи для решения этой проблемы производительности?

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