Private Sub Test_Copy()
Dim iSource As Worksheet, iNewBook As Workbook
Set iSource = ThisWorkbook.Worksheets("Data")
Set iNewBook = Workbooks.Add(xlWBATWorksheet)
iBookName$ = "Тест " & iSource.Range("G3") & " пройден " & iSource.Range("H3") & ".xls"
iSource.Range("A1:CI4").Copy Destination:=iNewBook.Worksheets(1).Range("A1")
iNewBook.SaveAs Filename:="C:\Мои_документы\" & iBookName$
End Sub
Копирование диапазона из одной книги excel в другую.
имеется рабочая книга с названием 1.xls. в этой книге имеется лист с названием "data". Необходимо скопировать диапазон A1:CI4 и вставить его в новую(отдельную) книгу (с одним листом).Название книги которое состоит из значений Тест G3 пройден H3 .
Код:
Если форматирование ячеек не имеет значения, а важны лишь значения, то :
Код:
Private Sub Test()
Dim iNewBook As Workbook
Set iNewBook = Workbooks.Add(xlWBATWorksheet)
With ThisWorkbook.Worksheets("Data")
iNewBook.Worksheets(1).[A1:CI4] = .[A1:CI4].Value
iNewBook.SaveAs Filename:="C:\Мои_документы\" & "Тест " & .[G3] & " пройден " & .[H3] & ".xls"
End With
End Sub
Dim iNewBook As Workbook
Set iNewBook = Workbooks.Add(xlWBATWorksheet)
With ThisWorkbook.Worksheets("Data")
iNewBook.Worksheets(1).[A1:CI4] = .[A1:CI4].Value
iNewBook.SaveAs Filename:="C:\Мои_документы\" & "Тест " & .[G3] & " пройден " & .[H3] & ".xls"
End With
End Sub
Код:
Private Sub Test2()
Dim iSource As Worksheet
Set iSource = ThisWorkbook.Worksheets("Data")
With Workbooks.Add(xlWBATWorksheet)
.Worksheets(1).[A1:CI4] = iSource.[A1:CI4].Value
.SaveAs Filename:="C:\Мои_документы\" & "Тест " & iSource.[G3] & " пройден " & iSource.[H3] & ".xls"
End With
End Sub
Dim iSource As Worksheet
Set iSource = ThisWorkbook.Worksheets("Data")
With Workbooks.Add(xlWBATWorksheet)
.Worksheets(1).[A1:CI4] = iSource.[A1:CI4].Value
.SaveAs Filename:="C:\Мои_документы\" & "Тест " & iSource.[G3] & " пройден " & iSource.[H3] & ".xls"
End With
End Sub
суть такова что первые 2 строки эта шапка таблицы (A1:CI2)
а соответственно третья строка это значения которые надо копировать как значения (A3:CI3)
У Вас, что в диапазоне A3:CI3 находятся формулы ?
да( формулы и ссылки), но их надо как значения вставить, а диапазон A1:CI2 это просто форма ( шапка) таблицы
Код:
Private Sub Test_Copy2()
Dim iSource As Worksheet, iNewBook As Workbook
Set iSource = ThisWorkbook.Worksheets("Data")
iBookName$ = "Тест " & iSource.Range("G3") & " пройден " & iSource.Range("H3") & ".xls"
iSource.Range("A1:CI4").Copy
Set iNewBook = Workbooks.Add(xlWBATWorksheet)
iNewBook.Worksheets(1).Range("A1").PasteSpecial xlValues
iNewBook.Worksheets(1).Range("A1").PasteSpecial xlFormats
iNewBook.SaveAs Filename:="C:\Мои_документы\" & iBookName$
End Sub
Dim iSource As Worksheet, iNewBook As Workbook
Set iSource = ThisWorkbook.Worksheets("Data")
iBookName$ = "Тест " & iSource.Range("G3") & " пройден " & iSource.Range("H3") & ".xls"
iSource.Range("A1:CI4").Copy
Set iNewBook = Workbooks.Add(xlWBATWorksheet)
iNewBook.Worksheets(1).Range("A1").PasteSpecial xlValues
iNewBook.Worksheets(1).Range("A1").PasteSpecial xlFormats
iNewBook.SaveAs Filename:="C:\Мои_документы\" & iBookName$
End Sub
Код:
Private Sub Test_Copy3()
Dim iSource As Worksheet
Set iSource = ThisWorkbook.Worksheets("Data")
iSource.Range("A1:CI4").Copy
With Workbooks.Add(xlWBATWorksheet)
.Worksheets(1).Range("A1").PasteSpecial xlValues
.Worksheets(1).Range("A1").PasteSpecial xlFormats
.SaveAs Filename:="C:\Мои_документы\Тест " & _
iSource.Range("G3") & " пройден " & iSource.Range("H3") & ".xls"
End With
End Sub
Dim iSource As Worksheet
Set iSource = ThisWorkbook.Worksheets("Data")
iSource.Range("A1:CI4").Copy
With Workbooks.Add(xlWBATWorksheet)
.Worksheets(1).Range("A1").PasteSpecial xlValues
.Worksheets(1).Range("A1").PasteSpecial xlFormats
.SaveAs Filename:="C:\Мои_документы\Тест " & _
iSource.Range("G3") & " пройден " & iSource.Range("H3") & ".xls"
End With
End Sub
огромное спасибо !
P.S. В конце макроса имеет смысл использовать ещё и Application.CutCopyMode = False
Хорошо. Учту. А как теперь в эту новую книгу автоматически добавить кнопку с макросом( тело макроса может храниться в создаваемой книге, или где либо ещё ) .
Код:
With .Worksheets(1).Buttons.Add(Left:=75, Top:=25, Width:=75, Height:=25)
.Text = "Моя кнопка"
.OnAction = "MyMacros1"
End With
.Text = "Моя кнопка"
.OnAction = "MyMacros1"
End With
2) Работа с модулем в VBE, создание/импорт/экспорт
возможно ли копрование выделенного диапазона не shets-ая по книгам и листам ? как упростить код ?
Что касается копирования, то в моём примере нет выделения, и упрощать там особого нечего.