Добрый вечер. Имеется таблица Лист "Реестр". Необходимо перенести соответствующие столбцы с активной ячейки на другой Лист "Отчет". В прилагаемом файле есть описание(результат)
Добрый вечер. Имеется таблица Лист "Реестр". Необходимо перенести соответствующие столбцы с активной ячейки на другой Лист "Отчет". В прилагаемом файле есть описание(результат)parovoznik
MsgBox "Перенести данные с активной ячейки(соответствующие столбцы)на лист Отчет.", 64, Сообщение With Sheets("Отчет") LR = .Cells(Rows.Count, 2).End(xlUp).Row + 1 Cells(ActiveCell.Row, "A").Copy .Cells(LR, "B") Cells(ActiveCell.Row, "B").Copy .Cells(LR, "G") Cells(ActiveCell.Row, "D").Copy .Cells(LR, "L") Cells(ActiveCell.Row, "R").Copy .Cells(LR, "J") Cells(ActiveCell.Row, "S").Copy .Cells(LR, "D") End With End Sub
[/vba]
[vba]
Код
Sub CopyActiveCells()
MsgBox "Перенести данные с активной ячейки(соответствующие столбцы)на лист Отчет.", 64, Сообщение With Sheets("Отчет") LR = .Cells(Rows.Count, 2).End(xlUp).Row + 1 Cells(ActiveCell.Row, "A").Copy .Cells(LR, "B") Cells(ActiveCell.Row, "B").Copy .Cells(LR, "G") Cells(ActiveCell.Row, "D").Copy .Cells(LR, "L") Cells(ActiveCell.Row, "R").Copy .Cells(LR, "J") Cells(ActiveCell.Row, "S").Copy .Cells(LR, "D") End With End Sub
К циклу - небольшое дополнительное сокращение-извращение [vba]
Код
With Sheets("Отчет") For Each irow In Selection.Rows lr = .Cells(Rows.Count, 2).End(xlUp).Row + 1 For i = 0 to 4 .Cells(lr, Array(2, 4, 7, 10, 12)(i)) = Cells(irow.Row, Array(1, 19, 2, 18, 4)(i)) Next i Next irow End With
К циклу - небольшое дополнительное сокращение-извращение [vba]
Код
With Sheets("Отчет") For Each irow In Selection.Rows lr = .Cells(Rows.Count, 2).End(xlUp).Row + 1 For i = 0 to 4 .Cells(lr, Array(2, 4, 7, 10, 12)(i)) = Cells(irow.Row, Array(1, 19, 2, 18, 4)(i)) Next i Next irow End With
Добрый день. В процессе работы возникли некие вопросы : как сохранить при переносе форматы(шрифт, границы полей) и добавить на лист "Отчет" доп.поля.(Дата отгрузки=СЕГОДНЯ и в Столбец Операция- слово расход. В примере отобразил желаемый результат. Заранее благодарен.
Добрый день. В процессе работы возникли некие вопросы : как сохранить при переносе форматы(шрифт, границы полей) и добавить на лист "Отчет" доп.поля.(Дата отгрузки=СЕГОДНЯ и в Столбец Операция- слово расход. В примере отобразил желаемый результат. Заранее благодарен.parovoznik
Sub CopyActiveCells() ' MsgBox "Перенести данные с активной ячейки(соответствующие столбцы)на лист Отчет.", 64, Сообщение Application.ScreenUpdating = False With Sheets("Отчет") For Each irow In Selection.Rows lr = .Cells(Rows.Count, 2).End(xlUp).Row + 1 For i = 0 To 4 '.Cells(lr, Array(2, 4, 7, 10, 12)(i)) = Cells(irow.Row, Array(1, 19, 2, 18, 4)(i)) Cells(irow.Row, Array(1, 19, 2, 18, 4)(i)).Copy .Cells(lr, Array(2, 4, 7, 10, 12)(i)).PasteSpecial xlPasteColumnWidths .Cells(lr, Array(2, 4, 7, 10, 12)(i)).PasteSpecial xlPasteFormats .Cells(lr, Array(2, 4, 7, 10, 12)(i)).PasteSpecial xlPasteValues Next i Next irow .Cells(lr, 1) = Date .Cells(lr, 3) = "Расход" End With Лист2.Activate Application.ScreenUpdating = True End Sub
Sub CopyActiveCells() ' MsgBox "Перенести данные с активной ячейки(соответствующие столбцы)на лист Отчет.", 64, Сообщение Application.ScreenUpdating = False With Sheets("Отчет") For Each irow In Selection.Rows lr = .Cells(Rows.Count, 2).End(xlUp).Row + 1 For i = 0 To 4 '.Cells(lr, Array(2, 4, 7, 10, 12)(i)) = Cells(irow.Row, Array(1, 19, 2, 18, 4)(i)) Cells(irow.Row, Array(1, 19, 2, 18, 4)(i)).Copy .Cells(lr, Array(2, 4, 7, 10, 12)(i)).PasteSpecial xlPasteColumnWidths .Cells(lr, Array(2, 4, 7, 10, 12)(i)).PasteSpecial xlPasteFormats .Cells(lr, Array(2, 4, 7, 10, 12)(i)).PasteSpecial xlPasteValues Next i Next irow .Cells(lr, 1) = Date .Cells(lr, 3) = "Расход" End With Лист2.Activate Application.ScreenUpdating = True End Sub