- ベストアンサー
Excel2003で、更新を他のシートに反映させるには?
基の表(A表)を更新する度に、他の並び方をした別表(B表)を常に見られるように、A表をB表に上書きコピーして希望の順番に並び替えてます。これを、A表を更新すれば、自動的にB表に結果を反映(並び替えも)させる方法が在りますでしょうか? よろしくお願い致します。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
とりあえず、現在やっている作業を、ボタンクリック1回で行うVBAを挙げます。 Sheet1にボタンを1つ貼り付ける。そのクリックイベントに Private Sub CommandButton1_Click() Dim rng As Range Set rng = Worksheets("Sheet1").Range("a2").CurrentRegion rng.Copy Worksheets("Sheet2").Activate Worksheets("Sheet2").Range("A1").Select ActiveSheet.Paste Set rng = Worksheets("Sheet2").Range("a2").CurrentRegion rng.Sort Key1:=Worksheets("Sheet2").Range("B2"), Order1:=xlAscending, Header:=xlNo, _ OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _ :=xlPinYin, DataOption1:=xlSortNormal End Sub ーー ソートキーの指定 昇順・降順 等 などは必要に応じて上記コードを変えてください。 ほとんど、別途マクロの記録をとれば、どういうコードになるか、判ります。 Sheet1の1部データが変わるごとに、上記を行うことは時間がかかり現実的でないでしょう。 ーー 関数では Sheet3 21 aa 65 ss 43 d 54 f 21 h Sheet4に A1に =LARGE(Sheet3!$A$1:$A$10,ROW() B1に =INDEX(Sheet3!$B$1:$B$10,MATCH(A1,Sheet3!$A$1:$A$10,0),1) 結果 65 ss 54 f 43 d 21 aa 21 aa このように、同じ値があるとうまく行かない。 文字列だとうまくいかない ので難しいかなと思う。 関数は即時反応性は良いが。
お礼
有難うございました。 文字列なので関数では無理のようですね。 VBAは、学習もかねてやってみます。更新の度に時間が掛かるようでしたら、あきらめます。