Копировать выбранную строку на другой лист

Копировать выбранную строку на другой лист

Например, есть 10 строк на одном рабочем листе. Когда пользователь нажимает на одну строку, она должна быть представлена ​​на другом рабочем листе. Возможно ли это? Есть ли помощь, чтобы сделать это?

РЕДАКТИРОВАТЬ: Для пояснения: На одном листе представлены, например, оценки студентов за экзамены на первом курсе: Джон 10 8 10 7 Ник 8 9 8 9 Мария 7 8 8 7

На 2-м листе указаны данные студентов второго года обучения: Джон 9 9 10 8 Ник 8 8 9 7 Мария 7 6 8 8

Я хочу выдать какой-то итоговый сертификат студенту, поэтому сводная информация должна быть представлена ​​на третьем листе. Мне не нужно быть нажатой. На третьем листе может быть выпадающий список.

решение1

Вот быстрый макрос для этого:

Private Sub Worksheet_SelectionChange(ByVal Target As Range)
  With Sheet2.UsedRange
    'note, this won't copy to row 1, leaving headers intact.
    Target.EntireRow.Copy (.Rows(.Rows.Count + 1).EntireRow)
  End With
End Sub

Однако использование его с изменением выделения может быть довольно раздражающим, поскольку он будет выполняться каждый раз, когда вы выбираете другую ячейку, поэтому вам, возможно, стоит подумать об использовании какой-либо обратной проверки или другого способа выполнения этого.

Может быть, просто использовать код как пользовательский макрос и назначить ему горячую клавишу.

Редактировать

Если вы хотите сделать это только с помощью формул, вам придется настроить каждую ячейку строки назначения с помощью формулы. Я не знаю способа изменить ячейку напрямую с помощью формулы, за исключением, конечно, ячейки с формулой.

Тогда я бы предложил использовать восемь именованных диапазонов, ВПР или ПОИСКПОЗ.

Именованный диапазон может оказаться довольно близким к тому, что вы указали:

На листе назначения:

A1=14

A2=MYRANGE
B2=MYRANGE
.
.
.
IV2=MYRANGE

MYRANGE определяется как

=INDIRECT("SourceSheet!"&DestSheet!$A$1&":"&DestSheet!$A$1)

Это даст вам строку 14 конечного листа. Это также сработает, если A1 находится на исходном листе, просто отредактируйте его соответствующим образом.

Так же легко можно использовать два именованных диапазона:

MYDESTRANGE=SourceSheet!MYSOURCERANGE

Изменив MYSOURCERANGE на другую строку, вы фактически измените источник MYDESTRANGE, используя при этом ту же строку, что и раньше.

Связанный контент