Страницы: 1
RSS
Сохранение файла с именем, состоящим из нескольких значений из ячейки
 
Здравствуйте.

Подскажите, как создать такой процесс, кода при сохранении файла он сохранялся с именем трех первых значений ячейки B2 в той директории, в которой он находится.
Изменено: Серега_ - 07.05.2020 22:30:57
 
Код
    ChDir ThisWorkbook.Path
    Workbooks.Add.SaveAs Filename:=ThisWorkbook.Path & "\" & Range("B2").Value, _
                         FileFormat:=xlNormal
Мастерство программиста не в том, чтобы писать программы, работающие без ошибок.
А в том, чтобы писать программы, работающие при любом количестве ошибок.
 
Цитата
Серега_ написал: трех первых значений ячейки B2
а как это понять? Чем эти значения разделены и как понять какое первое, какое третье и т.д.?
В общем случае может помочь Split, а так же Replace и InStr. Если знать как искать значения внутри ячейки...
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Цитата
The_Prist написал:В общем случае может помочь Split
Или Left, если разговор о трёх первых символах))
А вообще подобных тем (имя файла из ячейки) на форуме целая куча.
 
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
Если ячейка пуста то файл сохраняется как есть (то есть с тем изначально шаблонным именем), если ячейка заполнена, то создается новый файл с именем ячейки.
Но возникает ошибка после открытия уже созданного файла и повторного его сохранения, с таким сообщением:
“Имя книги, которую вы пытаетесь сохранить, совпадает с именем открытой в данный момент книги.”
Как обойти данную ошибку и сохранять созданный файл при изменениях?
Изменено: Серега_ - 21.11.2015 17:23:28
 
Здравствуйте) имеется файл, который нужно сохранить в папку с названием из ячеек файла, и именем из нескольких ячеек файла. Пробовала вставлять коды из постов на форуме - ругается экселька. :(
 
Цитата
нужно сохранить в папку с названием из ячеек файла, и именем из нескольких ячеек файла
Попробуйте так
Код
ActiveWorkBook.SaveAs "d:\работа\2016\8\" & Range("E5")&Range("G5") & Range("I5") & ".xlsx"
 
да, имя сохраняет, но папку придется указывать в макросе конкретную.. а мне нужно чтобы макрос сам искал папку в которую нужно сохранить, с данными из ячейки(в ячейках название папки)
Изменено: Просто Ledi - 20.08.2016 19:15:53
 
Код
Sub qq()
Application.DisplayAlerts = False
ActiveWorkbook.SaveAs Filename:="d:\работа\" & CStr(Range("B5")) & "\" & CStr(Range("C5")) & "\" & Range("E5") & Range("G5") & Range("I5"), FileFormat:=51
Application.DisplayAlerts = True
End Sub
 
спасибо большое!) все просто супер получилось!) :)
 
Код
Private Sub Workbook_BeforeClose(Cancel As Boolean)
ActiveWorkbook.SaveCopyAs Filename:=ThisWorkbook.Path & "\" & [J2].Value & ".xls"
End Sub
 
RAN, применил Ваш макрос, спасибо огромное, мне тоже пригодилось. Подскажите что нужно изменить чтобы макрос сохранял в формате xlsm. Заранее спасибо!
Изменено: zzold - 07.05.2020 22:31:46 (Написал код понятнее)
 
Код
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
Все супер! Спасибо огромное! А можно к этому ещё добавить: если файл уже с таким именем существует то спрашивать перезаписать или сохранить с другим именем и ввести каким?
 
Зачем Вы меня цитируете?
По поводу сохранения файла - давайте уже в отдельной теме.
Страницы: 1
Читают тему
Наверх