Я нашел этот отличный макрос, который копирует каждую из моих строк в моем кадре данных отдельно в новый лист, но также сохраняет первую строку с именами столбцов:Excel. Скопируйте каждую строку в новую книгу, но сохраните имена столбцов. Macro
Sub abc_01()
Dim WS As Worksheet, newWS As Worksheet
Dim X As String
Application.ScreenUpdating = False
Set WS = Sheets("Sheet1")
On Error Resume Next
X = InputBox("number of names 1,2,", , "9")
For i = 1 To X
Set newWS = Worksheets.Add(after:=Worksheets(Worksheets.Count))
WS.Range("A1:G1").Copy Destination:=newWS.Range("A1")
WS.Range(WS.Cells(i + 1, "A"), WS.Cells(i + 1, "G")).Copy
newWS.Range("A2").PasteSpecial xlValues
Next i
On Error GoTo 0
Application.ScreenUpdating = True
End Sub
Я попытался теперь скопировать его в новую книгу, а не новый лист, но новая рабочая книга остается пустой, когда я запускаю его. Кроме того, я не спасал новые книги еще в качестве нового файла (в идеале конкретного значения ячейки, если это возможно?)
Sub abc_02()
Dim thisWB As String
Dim newWB As String
thisWB = ActiveWorkbook.Name
Dim X As String
Application.ScreenUpdating = False
Set WS = Sheets("Sheet1")
On Error Resume Next
X = InputBox("number of names 1,2,", , "9")
For i = 1 To X
Workbooks.Add
ActiveWorkbook.SaveAs supName
newWB = ActiveWorkbook.Name
Windows(thisWB).Activate
Sheets("Sheet1").Select
Range("A1:G1").Copy
Windows(newWB).Activate
Sheets("Sheet1").Select
ActiveSheet.Range("A1").Select
ActiveSheet.Range("A1").Paste
Windows(thisWB).Activate
Sheets("Sheet1").Select
Range(Sheet1.Cells(i + 1, "A"), Sheet1.Cells(i + 1, "G")).Copy
Windows(newWB).Activate
Sheets("Sheet1").Select
Range("A2").PasteSpecial xlValues
Next i
On Error GoTo 0
Application.ScreenUpdating = True
End Sub
Я VBA нуб так что любая помощь очень ценится!
Большое спасибо за помощь Аарон - но, к сожалению, мои новые книги по-прежнему пусты. Шаг «thisWB = Activeworkbook.Name», похоже, не работает, поэтому он никогда не копирует ячейки из оригинальной книги. Есть идеи? – RSesom