Копировать данные с одного листа на другой на основе имен и дат

Итак, у меня есть два листа. Оба являются списками. У одного есть даты сверху, имена внизу слева. Другой наоборот. Мне нужно скопировать данные из последнего в первый. Я мог бы жестко закодировать копию ячейки в ячейку, проблема в количестве кадровых перестановок из списка в список. Каков наилучший подход для завершения этого?

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

Редактировать: Я вижу, что вы отправляли хорошие вопросы вместе с кодом в прошлом, так что, я думаю, было уже поздно:-)

Другие вопросы по тегам