使用复制粘贴对单元格更改的Excelsorting问题

我不明白为什么会发生这种情况!

我在仪表板上创build了“前10名”的原因。 在后台,通过更改date在某些单元格更改仪表板的date参数我希望子sorting的原因的完整列表,并返回前10名。

我做了这个(非常懒惰地使用录音机),它完美的作品。 然后我设置一个子来检查date单元格被改变,并打电话给我的分拣机,虽然复制和粘贴工作…sorting不是…

我想知道这是否是一个时间问题? 也许当子被称为公式和单元格没有更新?

所以这里是我的快速和肮脏top10分

Sub Stage1ReasonUpdate() Sheets("Lists").Activate ActiveWorkbook.Worksheets("Lists").Sort.SortFields.Clear ActiveWorkbook.Worksheets("Lists").Sort.SortFields.Add Key:=Range("R4:R52"), _ SortOn:=xlSortOnValues, Order:=xlDescending, DataOption:=xlSortNormal With ActiveWorkbook.Worksheets("Lists").Sort .SetRange Range("Q4:S52") .Header = xlGuess .MatchCase = False .Orientation = xlTopToBottom .SortMethod = xlPinYin .Apply End With Sheets("Lists").Select Range("Q4:Q13").Select Application.CutCopyMode = False Selection.Copy Sheets("Stage1").Select Range("U16").Select Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False Sheets("Stage1").Select Range("A1").Select End Sub 

这里是在工作表上检查更改的子

 Private Sub Worksheet1_Change(ByVal Target As Range) Dim KeyCells As Range ' The variable KeyCells contains the cells that will ' cause an alert when they are changed. Set KeyCells = Range("r3:w3") If Not Application.Intersect(KeyCells, Range(Target.Address)) _ Is Nothing Then ' Display a message when one of the designated cells has been ' changed. ' Place your code here. 'MsgBox "Cell " & Target.Address & " has changed." Call Stage1ReasonUpdate End If End Sub 

我只是打一个空白,我想了解为什么它的工作时,直接调用子,但不是从工作表中调用更改。

预先感谢您提供的任何帮助