選択した行を別のワークシートにコピーする

選択した行を別のワークシートにコピーする

たとえば、1 つのワークシートに 10 行あります。ユーザーが 1 つの行をクリックすると、別のワークシートに表示されます。これは可能ですか? これを行うためのサポートはありますか?

編集: 明確にするために:1枚のシートに、例えば1年生の生徒の試験の点数が表示されます:ジョン10 8 10 7 ニック8 9 8 9 マリア7 8 8 7

2枚目のシートには2年生の生徒情報が記載されています: ジョン 9 9 10 8 ニック 8 8 9 7 マリア 7 6 8 8

学生に何らかの最終証明書を発行したいので、概要情報を 3 番目のシートに表示する必要があります。クリックする必要はありません。3 番目のシートにドロップダウン リストがある可能性があります。

答え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

ただし、選択変更で使用すると、別のセルを選択するたびに実行されるため、非常に面倒になる可能性があります。そのため、何らかのバックチェックや別の実行方法の使用を検討することをお勧めします。

コードをカスタムマクロとして使用し、ショートキーを割り当てるだけでよいかもしれません。

編集

これを数式のみで実行したい場合は、目的の行の各セルに数式を設定する必要があります。数式を含むセルを除き、数式を使用してセルを直接変更する方法は知りません。

私の提案は、名前付き範囲、VLOOKUP、または MATCH のいずれかを使用することです。

名前付き範囲は、あなたが述べた内容にかなり近づく可能性があります。

宛先シートについて:

A1=14

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

MYRANGEは次のように定義されます

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

これにより、宛先シートの 14 行目が取得されます。 A1 が SourceSheet にある場合も、これと同じように機能します。それに応じて編集するだけです。

同様に、2 つの名前付き範囲を使用することもできます。

MYDESTRANGE=SourceSheet!MYSOURCERANGE

MYSOURCERANGE を別の行に変更すると、以前と同じ行を使用しながら、MYDESTRANGE のソースを効果的に変更することになります。

関連情報