我在 Sheet 1 上输入工作表中的新数据,在参考表上我从 Sheet 1 中提取相同的值,以便按输入的时间对它们进行排序。我的目标是在 Sheet 1 上显示最近在 Sheet 1 上输入的 10 个项目。我使用下面的公式按日期对我的参考表进行排序,但由于我使用公式来提取值,因此它不会触发。是否可以将其与新宏结合使用,以便我可以在一个地方输入数据并在其他地方对其进行排序?
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
听起来您的问题是宏代码没有触发工作表中的更改,因为工作表只是根据公式引用而更改。如果是这种情况,您能否不将代码(或调用任何您需要的 Subs)从工作簿工作表更改()替代?(“工作簿”SheetChange()当您更改时将触发事件任何您可以使用以下方式检查已更改的工作表:船名从此 Sub 中获取更改的单元格地址,使用目标地址。