Страницы: 1
RSS
Сохранение в новую книгу только выделенного листа с присвоением имени новой книги из ячейки выделеного листа
 
Прошу помочь с существующим макросом
Код
Sub SplitSheets1()
    Dim AW As Window
    Set AW = ActiveWindow
    For Each s In AW.SelectedSheets
        Set TempWindow = AW.NewWindow    'создаем отдельное временное окно
        s.Copy                           'копируем туда лист из выделенного диапазона
        TempWindow.Close                 'закрываем временное окно
    Next
End Sub

не могу додуматься как правильно присвоить имя создаваемой книге из ячейки копируемого листа.
Изменено: BiruykSer - 09.05.2020 19:06:10
 
Здравствуйте, можно проще:
Код
Sub CopyWsh2()
    If ActiveCell.Value = "" Then
        MsgBox "Выделенная ячейка пустая"
        Exit Sub
    End If
    ActiveSheet.Copy
    ActiveWorkbook.SaveAs "C:\Users\User\Desktop\" & ActiveCell.Value & ".xlsx"
End Sub
Изменено: Niko.x87 - 09.05.2020 16:41:51
 
Этот метод безусловно рабочий, но как раз сам файл сохранять мне не надо, да и ячейка с которой брать имя файла статична  (J4).
Как вы думаете, можно ли в исходный макрос что-то добавить?
 
BiruykSer, конечно можно, знать бы что вам нужно. Если ячейка статична, то можно прописать так:
Код
ActiveWorkbook.SaveAs "C:\Users\User\Desktop\" & Range("J4").Value & ".xlsx"

или
Код
ActiveWorkbook.SaveAs "C:\Users\User\Desktop\" & Workbooks("Имя вашей книги из статическим именем").Range("J4").Value & ".xlsx"

 
Цитата
BiruykSer написал:
но как раз сам файл сохранять мне не надо
Не совсем понятно, что собственно нужно сделать, в теме написано "Сохранение выделенного листа, Сохранение в новую книгу только выделенного листа".
Как-то противоречиво или я не правильно понял название темы.
 
Цитата
Niko.x87 написал:
Не совсем понятно, что собственно нужно сделать
Прошу прощения если ввел вас в заблуждение своими формулировками,
Идея такова:
При использовании макроса SplitSheets1, создаётся новая КнигаXX, в которой я делаю изменения и после сохраняется в PDF ( использую ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _...) , а ранее созданную КнигаXX закрываю без сохранения за ненадобностью.
И получается что предложенный вами вариант сохраняет КнигаXX (в данном случае на раб стол.)
 
Может это?
Код
Sub ExpToPDF1()
    Dim fileSaveName As Variant
    On Error GoTo rtyagain
    fileSaveName = Application.GetSaveAsFilename("Введите имя файла", "PDF (*.pdf), *.pdf")
    If fileSaveName <> False Then
    ActiveWorkbook.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=(fileSaveName), _
    Quality:=xlQualityStandard, IncludeDocProperties:=True, IgnorePrintAreas:=False, _
    OpenAfterPublish:=True
    End If
    Exit Sub
rtyagain:
    MsgBox "У вас не установлен принтер или возникла другая ошибка.", vbCritical, "Експорт перерван"
End Sub
 
Цитата
BiruykSer написал:
При использовании макроса SplitSheets1, создаётся новая КнигаXX, в которой я делаю изменения и после сохраняется в PDF
А зачем создавать новую книгу ? почему просто не скопировать все на новый лист и с ним работать ?
 
Цитата
Niko.x87 написал: CopyWsh2
По итогу добавил экспорт в пдф и успокоился...
Код
Sub CopyWsh3()
    If ActiveCell.Value = "" Then
        MsgBox "Выделенная ячейка пустая"
        Exit Sub
    End If
    ActiveSheet.Copy
    ActiveWorkbook.SaveAs "/Users/sergei/Desktop/" & Range("J4").Value & ".xlsx"

    ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, FileName:= _
        "/Users/sergei/Desktop/" & Range("J4").Value & ".pdf", Quality:=xlQualityStandard, _
        IncludeDocProperties:=ИСТИНА, IgnorePrintAreas:=ЛОЖЬ, OpenAfterPublish:= _
        ЛОЖЬ
End Sub

Цитата
Андрей_26 написал: скопировать все на новый лист
это и делает первый макрос который я не смог доработать, идея состояла в том что после того как на новый лист скопирует содержимое, ему надо без сохранения присвоить имя (книги)
Страницы: 1
Наверх