Почему Excel выдает ошибку «Невозможно сдвинуть объекты с листа» - PullRequest
1 голос
/ 27 октября 2009

Я сделал небольшое изменение в макросе Excel, и, хотя он работал на листе, для которого я его разработал, он вызывает ошибки на аналогичном листе.

Изменение просто добавляет пару столбцов, сортирует данные по этим столбцам, а затем снова удаляет их.

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

Сбой с ошибкой, указанной в заголовке в строке rng.Parent.Outline.ShowLevels RowLevels:=4

1 Ответ

2 голосов
/ 27 октября 2009

Ошибка связана с перемещением объекта на невидимую часть экрана. Например, комментарий или графический объект.

В этом случае наличие автофильтрации означает, что в каждом столбце есть поле со списком, как видно из ActiveSheets.Shapes. Что-то в добавлении или удалении новых столбцов, очевидно, меняет поведение, но мне не понятно почему.

Надеюсь, есть лучшее решение, но мне удалось придумать этот обходной путь, который работает, даже если он не элегантный.

  1. Поворот автофильтра
  2. Удалить все фигуры с листа
  3. Обработка
  4. Снова включить автофильтр

который в VBA выглядит как

If ActiveSheet.AutoFilterMode = True Then
    ActiveSheet.AutoFilterMode = False
    Dim s As Shape
    For Each s In ActiveSheet.Shapes
        s.Delete
    Next
End If

Сделайте что-нибудь интересное здесь ...

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