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
Могу ли я программно отменить удаление листов?
Такая задачка. Надо бы удалить лишние листы и сохранить книгу под новым именем, а потом отменить удаление этих листов, удалить другие и сохраниться под самым первым именем. Вот могу ли я программно отменить удаление? Пока при отладке пишет cant enter in breake mode in this time и вся отладка останавливается.
Если я правильно понял вопрос, то нет. После сохранения вы уже ничего не сможете отменить
Цитата: pavel55
Если я правильно понял вопрос, то нет. После сохранения вы уже ничего не сможете отменить
Но в Ворде это можно (надо предварительно сохранить док с каким-то именем):
Код:
Т.е. можно и сохраниться, а потом все отменить, и соотвественно, при необходимости сохраниться под другим именем.
Открыть Новую книгу переместить туда листы и сохранить обе в разных файлах.
не перемещаются. Переместить можно только в пределах одной книги. Остается удалять что надо, сохранять под новым именем, открывать исходный док, опять все что надо удалять и сохранять под старым именем.
1. Скопируйте новый файл с новым именем. Ведите "двойную бухгалтерию"
2. Записывайте каждое действие пользователя для того, чтобы сделать свое "Undo" и "Redo". Соответственные кнопки заменить на тулбаре на свои.
3. Написать свою программу и положить туда экселевский компонент Spreadsheet. Зависит от функцонала, которіе требуется.
Возможно, есть еще варианты.
2 и 3 - уже сложно (и понять и тем более реализовать).
У меня задачка простенькая - каждую неделю прибавляется один лист в ексель-книге. Как наберется 12 листов (если больше оставлять то уже долгова-то грузится), 10 промежуточных сохраняю в новом файле (типа архивирую), а из исходного удаляю, что бы не перегружать книгу.
Вот написал я процедуру сохранения листов в новом файле. Но приходится его держать открытым, до завершения работы со вторым, иначе прерывается выполнение процедуры, тк. она записана "в листе". Можно ли это как-то обойти? В Ворде есть normal.dot из которого можно запускать макросы даже при отсутствии открытых доков. А Екселе так можно? (пока, при всех закрытых доках у меня в редакторе VBA Excel'a нет никаких процедур).
Можно попытаться написать надстройку самому.
Тогда буду читать книжку по VBA.