• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

Проблема 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? Почему один работает там, где пасует второй и на одних и тех же данных? Формулы на внешние источники (по отношению к данному листу) отсутствуют
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab