|
|
|
Выполнение определенных действий при сохранении файла под другим именем
|
|||
|---|---|---|---|
|
#18+
Ситуация такая. Есть некий Excel-файл с набором неких макросов и связей, у файла расширение ".svd", но не в этом суть. Необходимо, чтобы при сохранении файла под другим именем выполнялись некие действия. А если просто сохранение, то ничего не происходило, файл просто сохранялся как есть. Конкретно в моем случае надо разрывать связи и удалять все макросы из файла. Как разорвать связи я знаю, как удалить все макросы тоже есть код . Проблема в том, как узнать в момент сохранения, что файл сохраняется под другим именем. Я написал такой код. Код: plaintext 1. 2. 3. 4. 5. 6. 7. Проблема в том, что при первом сохранении с помощью "Сохранить как" данный макрос ещё заранее не знает новое имя файла которое ввёл пользователь. По этой причине при первом сохранении ничего не происходит. Приходиться делать второе сохранение уже через "Сохранить" и только тогда разрываются связи. Проблему можно было бы решить, если бы заранее до момента сохранения знать имя файла, которое ввел пользователь. Конечно можно было бы использовать ещё значение переменой SaveAsUI, если оно True, то значит пользователь выполнил операцию "Сохранить как" и не проверяя имени разорвать связи. Но проблема в том, что пользователь может при этом и не поменять имя файла и тогда будет испорчен оригинальный файл. Что касается удаления кода, то тут тоже есть проблема. Тот макрос работает только если у пользователя стоит галочкой «Доверять доступ к Visual Basic Project». По идее эти две проблемы можно было бы решить, если в момент операции "Сохранить как", знать новое имя и путь к файлу, который указал пользователь. Тогда можно было бы макросом сначала разорвать связи, а затем перенести все листы в новый файл и новый файл сохранить под тем именем, который указал пользователь. Так что все спотыкается на то, как узнать новое имя файла указанное пользователем при "Сохранение как" до того момента как файл сохранился. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2011, 14:54 |
|
||
|
Выполнение определенных действий при сохранении файла под другим именем
|
|||
|---|---|---|---|
|
#18+
Djon Player, А вот такой вариант не подойдет? Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2011, 15:17 |
|
||
|
Выполнение определенных действий при сохранении файла под другим именем
|
|||
|---|---|---|---|
|
#18+
Спасибо The_Prist, это то что нужно. Именно код "sNewName = Application.GetSaveAsFilename" мне и нужен был. О сохранение в формате xlsx я тоже думал и у них даже установлен Excel 2007, только вот я не уверен, что такой Excel есть у тех, кому они будут потом пересылать этот файл. Видимо придется делать двойное пересохранение, сначала тот файл сохранить в формате xlsx, а затем в формате Excel 2003. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.03.2011, 15:36 |
|
||
|
|

start [/forum/topic.php?fid=61&fpage=134&tid=2177034]: |
0ms |
get settings: |
12ms |
get forum list: |
16ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
37ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 377ms |

| 0 / 0 |
