В книге есть несколько листов, данный код сохраняет всю книгу и берет имя из ячейки.
Как сделать так, чтобы сохранялся только активный , а не вся книга?
Код
Sub Сохранение()
Dim CellValue As String
Dim Path As String
Dim FinalFileName As String
Application.DisplayAlerts = False
Path = ThisWorkbook.Path & "D:\"
FinalFileName = Path & CellValue
ActiveWorkbook.SaveAs Filename:=Cells(23, 1) & ".xlsm", _
FileFormat:=xlOpenXMLWorkbookMacroEnabled
End Sub
Sub savesheet()
Dim wb As Workbook, sName As String, sPath As String
Application.DisplayAlerts = False
sPath = ThisWorkbook.Path & "\" 'Путь по которому сохраняем файл, в данном случае папка где находится книга с макросом
sName = Cells(1, 1).Value 'Имя файла, в данном случае берется из ячейки А1
Set wb = ThisWorkbook
wb.ActiveSheet.Copy
Set wbCopySheet = ActiveWorkbook
wbCopySheet.SaveAs Filename:=sPath & sName & ".xlsx", FileFormat:=51
wbCopySheet.Close
Application.DisplayAlerts = True
End Sub
alexexcel1990, Если перенесли код в свой файл без изменений и в ячейке указано корректное для имения файла значение то должно работать. Показывайте файл пример с ошибкой.
Вот эту строку вы изменили неверно. естественно у вас ошибка, ибо нет такого пути Если вам надо сохранять файл по пути "D:\" то она должна выглядеть так