Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Могу ли я программно отменить удаление листов?

248
12 февраля 2008 года
Dmitry2064
590 / / 06.12.2006
Такая задачка. Надо бы удалить лишние листы и сохранить книгу под новым именем, а потом отменить удаление этих листов, удалить другие и сохраниться под самым первым именем. Вот могу ли я программно отменить удаление? Пока при отладке пишет cant enter in breake mode in this time и вся отладка останавливается.
18K
12 февраля 2008 года
pavel55
79 / / 14.05.2007
Если я правильно понял вопрос, то нет. После сохранения вы уже ничего не сможете отменить
248
12 февраля 2008 года
Dmitry2064
590 / / 06.12.2006
Цитата: pavel55
Если я правильно понял вопрос, то нет. После сохранения вы уже ничего не сможете отменить



Но в Ворде это можно (надо предварительно сохранить док с каким-то именем):

Код:
Sub Макрос1()
    Selection.TypeText Text:=" оророр "
    Selection.TypeParagraph
    Selection.TypeParagraph
    Selection.TypeText Text:="орор"
    Selection.TypeParagraph
    Selection.TypeText Text:="орор"
    Selection.TypeParagraph
    Selection.TypeText Text:="ор"
    ActiveDocument.Save
ActiveDocument.Undo (8) 'документ стал опять чистым
End Sub

Т.е. можно и сохраниться, а потом все отменить, и соотвественно, при необходимости сохраниться под другим именем.
35K
12 февраля 2008 года
Livsi
5 / / 12.02.2008
Открыть Новую книгу переместить туда листы и сохранить обе в разных файлах.
248
12 февраля 2008 года
Dmitry2064
590 / / 06.12.2006
не перемещаются. Переместить можно только в пределах одной книги. Остается удалять что надо, сохранять под новым именем, открывать исходный док, опять все что надо удалять и сохранять под старым именем.
251
12 февраля 2008 года
SkyMаn
1.7K / / 31.07.2007
Способы
1. Скопируйте новый файл с новым именем. Ведите "двойную бухгалтерию"
2. Записывайте каждое действие пользователя для того, чтобы сделать свое "Undo" и "Redo". Соответственные кнопки заменить на тулбаре на свои.
3. Написать свою программу и положить туда экселевский компонент Spreadsheet. Зависит от функцонала, которіе требуется.

Возможно, есть еще варианты.
248
14 февраля 2008 года
Dmitry2064
590 / / 06.12.2006
Ну вот я и пошел по первому пути. Удаляю лишнее, сохраняю с новым именем, открываю старый, удаляю "инверсно" так сказать, и опять сохраняю.
2 и 3 - уже сложно (и понять и тем более реализовать).
У меня задачка простенькая - каждую неделю прибавляется один лист в ексель-книге. Как наберется 12 листов (если больше оставлять то уже долгова-то грузится), 10 промежуточных сохраняю в новом файле (типа архивирую), а из исходного удаляю, что бы не перегружать книгу.
248
14 февраля 2008 года
Dmitry2064
590 / / 06.12.2006
Вот написал я процедуру сохранения листов в новом файле. Но приходится его держать открытым, до завершения работы со вторым, иначе прерывается выполнение процедуры, тк. она записана "в листе". Можно ли это как-то обойти? В Ворде есть normal.dot из которого можно запускать макросы даже при отсутствии открытых доков. А Екселе так можно? (пока, при всех закрытых доках у меня в редакторе VBA Excel'a нет никаких процедур).
251
14 февраля 2008 года
SkyMаn
1.7K / / 31.07.2007
Можно попытаться написать надстройку самому.
248
14 февраля 2008 года
Dmitry2064
590 / / 06.12.2006
Тогда буду читать книжку по VBA.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог