- ベストアンサー
EXCELの関数orマクロについて。
ややこしい質問で申し訳ありません。 (1)sheet1のA列に数字を貼り付ける。 (2)sheet2のA列にsheet1のA列に貼り付けられている 数字を貼り付ける(ただし、重複無し) (3)sheet1のA列に別の数字を貼り付ける。 (4)sheet2のA列に、重複していない数字のみを貼り付ける。(追加していく) ・・・・というような操作を何回か繰り返したいのですが、このような場合、なにかいい関数などありますか? なかなかいい方法が浮かびません・・。アドバイスお願いいたします。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
問題の意味が十分掴めませんが、 例えばSheet1のA列に、データを1つずつ上行から下へ入力して行く場合に、今までなかった値が入力された時にSheet2に書き出して行くVBA Private Sub Worksheet_Change(ByVal Target As Range) Static j If Target.Column = 1 Then If Target.Row = 1 Then Worksheets("Sheet2").Cells(1, "A") = Cells(1, "A") j = 2 Exit Sub End If '----- x = WorksheetFunction.Match(Target, Range(Cells(1, 1), Target), 0) If x = Target.Row Then Worksheets("Sheet2").Cells(j, "A") = Target.Value j = j + 1 End If End If End Sub VBE画面で、ProjectウインドウのSheet1をダブルクリックして出てくるウインドウにおいて、左を Worksheet、右側Changeをクリックして出てくるPrivate・・・Endの間に上記を貼りつける。 Sheet1にデータが入力されたとき、以前に入力した 事がない値のものは、Sheet2に書き出す。 ただ複数セルを一遍に複写されると働きません。
その他の回答 (1)
- papayuka
- ベストアンサー率45% (1388/3066)
やるならマクロでしょうね。 (1)sheet1のA列に数字を貼り付ける。 元データはどこからコピーしてくるのか不明です。 (2)はフィルタオプションの重複無視を使うと簡単です。 (4)は 最初はRange("A1").Select ループ2回目以降 Range("A65536").End(xlup).Offset(1,0).Select で良いと思います。
お礼
お返事遅くなり大変申し訳ありませんでした。 ありがとうございます、大変役にたちました!