.png)
ワークシートに新しいデータを入力するシート 1 があり、参照シートではシート 1 から同じ値を取得して、入力した時間で並べ替えています。目標は、シート 1 に入力された最後の 10 項目を表示することです。以下の数式を使用して参照シートを日付で並べ替えましたが、値を取得する数式を使用しているため、トリガーされません。これを新しいマクロと組み合わせて、1 か所でデータを入力し、別の場所で並べ替えることは可能ですか?
Private Sub Worksheet_Change(ByVal Target As Range)
Dim A As Range
Dim AB As Range
Set A = Range("A:A")
Set AB = Range("A:B")
If Intersect(Target, A) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
Application.EnableEvents = False
Target.Offset(0, 1) = Now
AB.Sort Key1:=Range("B1"), Order1:=xlDescending, Header:=xlNo, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, _
DataOption1:=xlSortNormal
Application.EnableEvents = True
End Sub
答え1
問題は、数式参照によってシートが変更されるため、マクロコードが1つのシートの変更に対してトリガーされないということのようです。この場合、コード(または必要なサブルーチンの呼び出し)をワークブックシートの変更()代わりにサブ?(「ワークブック」のシート変更()変更するとイベントが発生しますどれでもシート)。変更されたシートを確認するには、氏名このサブから変更のセルアドレスを取得します。ターゲット.アドレス。