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