Копировать данные с одного листа на другой на основе имен и дат
Итак, у меня есть два листа. Оба являются списками. У одного есть даты сверху, имена внизу слева. Другой наоборот. Мне нужно скопировать данные из последнего в первый. Я мог бы жестко закодировать копию ячейки в ячейку, проблема в количестве кадровых перестановок из списка в список. Каков наилучший подход для завершения этого?
1 ответ
Решение
Что-то вроде этого:
Option Explicit
Public Sub CopyTranspose(ByVal prgnSourceTopLeftCell As Excel.Range, ByVal prngDestinationTopLeftCell As Excel.Range)
Dim lastRow As Long
Dim lastCol As Long
With prgnSourceTopLeftCell.Worksheet
lastRow = .Cells(.Rows.Count, prgnSourceTopLeftCell.Column).End(xlUp).Row
lastCol = .Cells(prgnSourceTopLeftCell.Row, .Columns.Count).End(xlToLeft).Column
.Range(prgnSourceTopLeftCell, .Cells(lastRow, lastCol)).Copy
End With
prngDestinationTopLeftCell.PasteSpecial xlPasteAll, Transpose:=True
Application.CutCopyMode = False
End Sub
Public Sub Demo()
CopyTranspose ThisWorkbook.Worksheets("Sheet1").Cells(1, 1), ThisWorkbook.Worksheets("Sheet2").Cells(1, 1)
End Sub
Редактировать: Я вижу, что вы отправляли хорошие вопросы вместе с кодом в прошлом, так что, я думаю, было уже поздно:-)