Страницы: 1
RSS
Почему вылетает excel?, При сортировке макросом я получаю либо ошибку либо вылет.
 
Добрый день, в рабочем файле excel имеется 16 столбцов и 2093 строки подлежащие сортировке. При сортировке макросом
Код
Private Sub Worksheet_Activate()
    Application.ScreenUpdating = False
    ActiveSheet.Range("T1:W1").EntireColumn.Hidden = False
    With ActiveSheet.Sort
        .SortFields.Clear
        .SortFields.Add Key:=Range("U6"), DataOption:=xlSortTextAsNumbers
        .SortFields.Add Key:=Range("T6"), DataOption:=xlSortTextAsNumbers
        .SetRange Range("B6:U509")
        .Apply
    End With
    ActiveSheet.Range("T1:W1").EntireColumn.Hidden = True
End Sub

Всё сортируется корректно, процесс занимает менее 1 секунды на моем ПК. Но если в восьмой строке указать значение больше 509 то программа просто вылетает. При значениях больше 2000 программа не вылетает, но я получаю сообщение об ошибке

Цитата
Run-time error '1004':  Application-definded or object-definded error

Если убрать объединения строк и столбцов на данном листе, то всё сортируется корректно.
Как мне дальше жить?

 
Здравствуйте.
Цитата
написал:
Как мне дальше жить?
Избавляйтесь от объединенных ячеек.
 
Цитата
Дмитрий Давыдов: Если убрать объединения строк и столбцов
сортировка - это перемещение данных между ячейками, а объединённые ячейки привязаны (сюрприз) к ячейкам, и Excel не может (сам без VBA) снимать объединение "там" и создавать его "тут". К тому же, возникают вопросы, как поступать, если объединённая ячейка становится "разбросана" по разным строкам вперемешку с другими данными.
Вариантов 3:
Один (самый простой и правильный) вам дали. Также можно сортировать диапазон, в который не входят объединённые ячейки - почти тоже самое, но их можно не трогать, если они выше или ниже сортируемого диапазона.
Второй: снять объединение, заполнив область значениями, а после сортировки объединить снова (руками ил VBA).
Третий - самый сложный. Изучайте VBA или размещайте заказ в платной ветке, предварительно поняв все нюансы, по которым должна происходить сортировка в диапазоне с объединёнными
Изменено: Jack Famous - 30.11.2022 11:21:36
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх