
Например, есть 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, используя при этом ту же строку, что и раньше.