Скорее всего это тоже не поможет. Насколько я понял это получениие информации о недавно/часто используемых файлах. В моем случае файлов много и весма вероятно использование редких и старых файлов.
Все-таки прошу рассмотреть мой файл-пример в посте №17.
Скорее всего это тоже не поможет. Насколько я понял это получениие информации о недавно/часто используемых файлах. В моем случае файлов много и весма вероятно использование редких и старых файлов.
Все-таки прошу рассмотреть мой файл-пример в посте №17.Stork4ever
С чем сталкнулся: 1. Первое сохранение - и сразу ошибка END/DEBUG связанная с отстутствующей папкой по пути прописанному в Excel. Путь поправил. Ошибка исчезла. Вероятность повторения мала, но пользователя это может напугать. 2. Данное решение позволяет ввести имя файла взяв за основу текущее название файла +1, но не дает возможность сохранить файл в любую другую папку, поскольку принудительно сохраняет именно в текущую!
Неужели при нажатии на "Сохранить как" нельзя открыть прописанную в ячейке папку в качестве предлагаемого по умолчанию места для сохранения? Можно ли для открытого файла назначить пользовательстую папку для сохранения из ячейки и дать возможность изменить название файла, как при обычном "Сохранить как"?
Типа:
Код
ThisWorkbook.Path = Sheets("Лист1").Cells(1, 1)
Или что-нибудь подобное...
Да вот еще что... Может отказаться от сохранения в xlt? Может сохранять в файл xls, но который будет защищен от изменения (например ReadOnly) тогда при редактировании Excel будет подхватывать изначально ThisWorkbook.Path и при попытке сохранения предлагать сохраниться в ту же папку но с другим именем? Мне нужно, что бы пока файл открыть его можно было сохранять сколь угодно раз, но как только его закрыл он был защищен от изменений. Для изменений он берется за основу, правиться и сохраняется, как новый исправленный файл, который также должен быть защищен от повторных изменений.
Спасибо, за предложенный вариант.
С чем сталкнулся: 1. Первое сохранение - и сразу ошибка END/DEBUG связанная с отстутствующей папкой по пути прописанному в Excel. Путь поправил. Ошибка исчезла. Вероятность повторения мала, но пользователя это может напугать. 2. Данное решение позволяет ввести имя файла взяв за основу текущее название файла +1, но не дает возможность сохранить файл в любую другую папку, поскольку принудительно сохраняет именно в текущую!
Неужели при нажатии на "Сохранить как" нельзя открыть прописанную в ячейке папку в качестве предлагаемого по умолчанию места для сохранения? Можно ли для открытого файла назначить пользовательстую папку для сохранения из ячейки и дать возможность изменить название файла, как при обычном "Сохранить как"?
Типа:
Код
ThisWorkbook.Path = Sheets("Лист1").Cells(1, 1)
Или что-нибудь подобное...
Да вот еще что... Может отказаться от сохранения в xlt? Может сохранять в файл xls, но который будет защищен от изменения (например ReadOnly) тогда при редактировании Excel будет подхватывать изначально ThisWorkbook.Path и при попытке сохранения предлагать сохраниться в ту же папку но с другим именем? Мне нужно, что бы пока файл открыть его можно было сохранять сколь угодно раз, но как только его закрыл он был защищен от изменений. Для изменений он берется за основу, правиться и сохраняется, как новый исправленный файл, который также должен быть защищен от повторных изменений.Stork4ever
Сообщение отредактировал Stork4ever - Среда, 02.12.2015, 11:44
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Application.EnableEvents = False: Application.DisplayAlerts = False Dim NewName Dim oFSO As Object Set oFSO = CreateObject("Scripting.FileSystemObject") path_ = ThisWorkbook.Sheets(1).Cells(1, 1) If oFSO.FolderExists(path_) = False Then path_ = ThisWorkbook.Path NewName = Application.GetSaveAsFilename(path_, "Excel file,*.xlt") If NewName = "False" Then Exit Sub ThisWorkbook.SaveAs NewName, xlTemplate8 Cancel = True Application.EnableEvents = True: Application.DisplayAlerts = True End Sub
[/vba] [vba]
Код
Private Sub Workbook_AfterSave(ByVal Success As Boolean) ThisWorkbook.Sheets(1).Cells(1, 1) = ThisWorkbook.Path Application.EnableEvents = False: Application.DisplayAlerts = False ThisWorkbook.Save Application.EnableEvents = True: Application.DisplayAlerts = True End Sub
[/vba]
а так? [vba]
Код
Private Sub Workbook_BeforeSave(ByVal SaveAsUI As Boolean, Cancel As Boolean) Application.EnableEvents = False: Application.DisplayAlerts = False Dim NewName Dim oFSO As Object Set oFSO = CreateObject("Scripting.FileSystemObject") path_ = ThisWorkbook.Sheets(1).Cells(1, 1) If oFSO.FolderExists(path_) = False Then path_ = ThisWorkbook.Path NewName = Application.GetSaveAsFilename(path_, "Excel file,*.xlt") If NewName = "False" Then Exit Sub ThisWorkbook.SaveAs NewName, xlTemplate8 Cancel = True Application.EnableEvents = True: Application.DisplayAlerts = True End Sub
[/vba] [vba]
Код
Private Sub Workbook_AfterSave(ByVal Success As Boolean) ThisWorkbook.Sheets(1).Cells(1, 1) = ThisWorkbook.Path Application.EnableEvents = False: Application.DisplayAlerts = False ThisWorkbook.Save Application.EnableEvents = True: Application.DisplayAlerts = True End Sub
1. Кажде сохранение предлагает "Сохранить как", т.е. не возможно сделать промежуточное сохранение файла в процессе работы. 2. Не подставляется имя файла. 3. При сохранении выскакивает ошибка Microsoft Excel "Будьте внимательны! В документе могут быть персональные данные, которые невозможно удалить с помощью инспектора документов. 4. При сохранении в другую папку значение ячейки A1 не изменяется на значение папки в которое происходит сохранение.
1. Кажде сохранение предлагает "Сохранить как", т.е. не возможно сделать промежуточное сохранение файла в процессе работы. 2. Не подставляется имя файла. 3. При сохранении выскакивает ошибка Microsoft Excel "Будьте внимательны! В документе могут быть персональные данные, которые невозможно удалить с помощью инспектора документов. 4. При сохранении в другую папку значение ячейки A1 не изменяется на значение папки в которое происходит сохранение.Stork4ever
Application.DefaultFilePath = прописанная в ячейке папка
Если прописать Application.DefaultFilePath =Sheets("Лист1").Cells(1, 1) , то он становиться равным значению ячейки, но путь сохранения по умолчанию и ThisWorkbook.Path =""
Application.DefaultFilePath = прописанная в ячейке папка
Если прописать Application.DefaultFilePath =Sheets("Лист1").Cells(1, 1) , то он становиться равным значению ячейки, но путь сохранения по умолчанию и ThisWorkbook.Path ="" Stork4ever
Все замечательно работает, только вот надо теперь разобраться, как восстанавливать исходное значение Application.DefaultFilePath после закрытия файла, иначе этот параметр остается в настройках Excel, что не актуально для работы с другими файлами.
Все замечательно работает, только вот надо теперь разобраться, как восстанавливать исходное значение Application.DefaultFilePath после закрытия файла, иначе этот параметр остается в настройках Excel, что не актуально для работы с другими файлами.Stork4ever
Перенес скрипт к себе в файл... Один вопрос. Если я открываю созданный шаблон, редактирую и хочу сохраниться, то мне предлагают, как и положенно сохраниться в новый файл. Тут все четко!. Но если не закрывая файл я продалжаю редактирование и хочу сделать промежуточное сохранение выскакивает предупреждение Microsoft Excel:
Книга содержит внешние данные. Следует ли приложению Microsoft Excel очистить данные перед сохранением, а затем обновить их при открытии шаблона?
Да /Нет /Отмена
Можно этого как-нибудь избежать?
RAN - огромное СПАСИБО!!!
Перенес скрипт к себе в файл... Один вопрос. Если я открываю созданный шаблон, редактирую и хочу сохраниться, то мне предлагают, как и положенно сохраниться в новый файл. Тут все четко!. Но если не закрывая файл я продалжаю редактирование и хочу сделать промежуточное сохранение выскакивает предупреждение Microsoft Excel:
Книга содержит внешние данные. Следует ли приложению Microsoft Excel очистить данные перед сохранением, а затем обновить их при открытии шаблона?
Тем не менее, хотелось бы разобраться что вызывает такой вопрос и можно ли по умолчанию на него утвечать утвердительно не напрягая пользователей лишними вопросами.
А Вам, Андрей, еще один "+" в копилку за хороший и рабочий вариант Спасибо!
Тем не менее, хотелось бы разобраться что вызывает такой вопрос и можно ли по умолчанию на него утвечать утвердительно не напрягая пользователей лишними вопросами.
А Вам, Андрей, еще один "+" в копилку за хороший и рабочий вариант Спасибо!Stork4ever