Подскажите, как создать такой процесс, кода при сохранении файла он сохранялся с именем трех первых значений ячейки B2 в той директории, в которой он находится.
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок. А в том, чтобы писать программы, работающие при любом количестве ошибок.
а как это понять? Чем эти значения разделены и как понять какое первое, какое третье и т.д.? В общем случае может помочь Split, а так же Replace и InStr. Если знать как искать значения внутри ячейки...
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
The_Prist, Юрий М С именем из трех первых значений или знаков текста в ячейки B2, но это не так важно с этим хоть и коряво но разберусь, дело в другом… The_Prist В одной из тем нашел Ваш код, добавил условие и повесил его на событие закрытие книги
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean) ' закрытие книги
If Range("B2").Value <> "" Then 'Если ячейка заполнена то
ActiveWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "\" & [B2].Value & ".xlsm" 'Сохранить с именем ячейки
Else
'Если ячейка не заполнена, то сохраняется как есть с первоначальным именем
End If
End Sub
Если ячейка пуста то файл сохраняется как есть (то есть с тем изначально шаблонным именем), если ячейка заполнена, то создается новый файл с именем ячейки. Но возникает ошибка после открытия уже созданного файла и повторного его сохранения, с таким сообщением: “Имя книги, которую вы пытаетесь сохранить, совпадает с именем открытой в данный момент книги.” Как обойти данную ошибку и сохранять созданный файл при изменениях?
Здравствуйте) имеется файл, который нужно сохранить в папку с названием из ячеек файла, и именем из нескольких ячеек файла. Пробовала вставлять коды из постов на форуме - ругается экселька.
да, имя сохраняет, но папку придется указывать в макросе конкретную.. а мне нужно чтобы макрос сам искал папку в которую нужно сохранить, с данными из ячейки(в ячейках название папки)
Sub Macro1()
Dim sPath As String, Txt As String, Rng As Range, sFile As String
sPath = "D:\Downloads\" 'Путь соъранения
Txt = "Слово" ' Искомое слово
Set Rng = Sheets("Лист1").Range("A2:F10").Find(what:=Txt, LookIn:=xlFormulas, LookAt:=xlWhole)
If Not Rng Is Nothing Then
sFile = Rng.Offset(1, 0)
ActiveWorkbook.SaveAs Filename:=sPath & sFile & ".xlsx"
End If
End Sub
Юрий М написал: Код ? 12345678910Sub Macro1()Dim sPath As String, Txt As String, Rng As Range, sFile As String sPath = "D:\Downloads\" 'Путь соъранения Txt = "Слово" ' Искомое слово Set Rng = Sheets("Лист1").Range("A2:F10").Find(what:=Txt, LookIn:=xlFormulas, LookAt:=xlWhole) If Not Rng Is Nothing Then sFile = Rng.Offset(1, 0) ActiveWorkbook.SaveAs Filename:=sPath & sFile & ".xlsx" End IfEnd Sub
Все супер! Спасибо огромное! А можно к этому ещё добавить: если файл уже с таким именем существует то спрашивать перезаписать или сохранить с другим именем и ввести каким?