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
не могу додуматься как правильно присвоить имя создаваемой книге из ячейки копируемого листа.
Sub CopyWsh2()
If ActiveCell.Value = "" Then
MsgBox "Выделенная ячейка пустая"
Exit Sub
End If
ActiveSheet.Copy
ActiveWorkbook.SaveAs "C:\Users\User\Desktop\" & ActiveCell.Value & ".xlsx"
End Sub
Этот метод безусловно рабочий, но как раз сам файл сохранять мне не надо, да и ячейка с которой брать имя файла статична (J4). Как вы думаете, можно ли в исходный макрос что-то добавить?
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
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
это и делает первый макрос который я не смог доработать, идея состояла в том что после того как на новый лист скопирует содержимое, ему надо без сохранения присвоить имя (книги)