• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Проблема Excel. Метод Move и Copy объекта WorkSheet

Г

Гринго

Добрый день

Может кто проконсультировать по следующей проблеме. Есть код VBA в книге MS Excel, который обрабатывает данные на определенном листе и далее должен переместить данный лист в новую книгу и сохранить как отдельный файл с определенным именем. Для этого используется следующая конструкция в коде

Sub Test()
Dim oSheet_AccSt As Worksheet
....
Set oSheet_AccSt = ThisWorkbook.Worksheets("<имя листа>")

' блок обработки данных
....
' перемещаем лист в новую книгу
oSheet_AccSt.Move

' блок сохранения новой книги на диске
...

End Sub

Так вот, в определенные дни код работает как надо - отрабатывает так, как от него ожидается. Но в какие-то дни MS Excel намертво зависает на выполнении выделенной команды oSheet_AccSt.Move (выявлено через отладку). Приложение после этого можно закрыть только через диспетчер задач. Причем эта проблема воспроизводится на всех компьютерах на работе в корпоративной сети

Сделал обходной вариант
oSheet_AccSt.Copy
' блок сохранения новой книги на диске
...
' удалим лист из исходной книги
oSheet_AccSt.Delete

Данный код работает штатно. Возник академический интерес - кто -либо может пояснить, какие принципиальные различия данных методов объекта WorkSheet в MS Excel? Почему один работает там, где пасует второй и на одних и тех же данных? Формулы на внешние источники (по отношению к данному листу) отсутствуют
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!