Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba Excel-如果特定单元格发生更改,则自动按列排序_Vba_Sorting_Excel - Fatal编程技术网

Vba Excel-如果特定单元格发生更改,则自动按列排序

Vba Excel-如果特定单元格发生更改,则自动按列排序,vba,sorting,excel,Vba,Sorting,Excel,我有一份Excel 2010的报告,可以刷新。单元格S3包含一个唯一的8位数字,每次刷新报告时该数字都会不同。第1行和第2行只是标题和其他信息;实际数据在第3行向下返回 我想做的是让报表自动对第3行的任何数据进行排序,A-Z按F列排序,当然还有所有相邻的数据以及它们各自的行,如果单元格S3的内容发生变化,这是有意义的话 这在VBA中可能吗 非常感谢。您可以使用以下活动: Private Sub Worksheet_Change(ByVal Target As Excel.Range)

我有一份Excel 2010的报告,可以刷新。单元格S3包含一个唯一的8位数字,每次刷新报告时该数字都会不同。第1行和第2行只是标题和其他信息;实际数据在第3行向下返回

我想做的是让报表自动对第3行的任何数据进行排序,A-Z按F列排序,当然还有所有相邻的数据以及它们各自的行,如果单元格S3的内容发生变化,这是有意义的话

这在VBA中可能吗

非常感谢。

您可以使用以下活动:

Private Sub Worksheet_Change(ByVal Target As Excel.Range) 
    If Target.Column = 19 And Target.Row = 3 Then 
      Dim lastrow As Long
      lastrow = Cells(Rows.Count, 2).End(xlUp).Row
      Range("A3:F" & lastrow).Sort key1:=Range("F3:F" & lastrow), _
           order1:=xlAscending, Header:=xlNo
    End If 
End Sub
有关排序,请参阅。 然而:

当单元格在重新计算过程中发生更改时,不会发生此事件。 使用事件捕获图纸重新计算

如果需要检查由重新计算引起的值更改,则必须将S3单元格的旧值存储在变量中,并将此旧值与新值进行比较。看