Sub yut()
Dim wsSource As Worksheet
Dim wsTarget As Worksheet
Dim wbTarget As Workbook
Dim rngTarget As Range
Dim CopyArea As String
Application.ScreenUpdating = False
Application.DisplayAlerts = False
CopyArea = "A1:E129"
Set wsSource = ActiveWorkbook.ActiveSheet
Set wsTarget = Workbooks.Add(1).Worksheets(1)
Sheets("Лист1").Name = "Заказ"
wsSource.Range(CopyArea).SpecialCells(xlCellTypeVisible).Copy
With wsTarget.Range("A1")
.PasteSpecial Paste:=xlPasteColumnWidths
.PasteSpecial Paste:=xlPasteValues
.PasteSpecial Paste:=xlPasteFormats
End With
With wsTarget
.Parent.SaveAs (ThisWorkbook.Path & "\" & wsSource.Range("I4") & ".xlsx")
.Parent.Close 0
End With
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Файл не формируется с названием из ячейки. Я так полагаю, что я копирую нужный мне диапазон, а потом вне этого диапазона пытаюсь задать имя файла, что приводит к ошибке
Добрый день. Собрал макрос, который копирует заданный диапазон ячеек в новую книгу, но не получается корректно сформировать имя файла на выходе т.к. нужно что бы имя файла бралось не из выделенного диапазона. Диапазон в исходной таблице - "A1:E129" Название, которое нужно присвоить результирующей книге находится на I4 (или 4,9)
Код
Sub copy_temp()
' Копируем диапазон
Range("A1:E129").Copy
' Заменяем формулы на значения
For Each cell In ActiveSheet.UsedRange.Cells
cell.Formula = cell.Value
Next cell
'Создаем новую книгу
Workbooks.Add
' Вставляем в созданную книгу ЗНАЧЕНИЯ
ActiveSheet.Paste
' Переименовываем лист в книге
Sheets("Лист1").Name = "Заказ"
'Сохраняем книгу в папку, где расположен файл с кодом
ActiveWorkbook.SaveAs (ThisWorkbook.Path & "\" & Cells(4, 9).Value & ".xlsx")
'Закрываем файл
ActiveWorkbook.Close
End Sub