【问题标题】:Excel - Automatically sort by a column if a specific cell changesExcel - 如果特定单元格更改,则自动按列排序
【发布时间】:2015-03-27 12:28:01
【问题描述】:

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

我希望能够让报告自动从第 3 行向下按 F 列从 A-Z 排序任何数据(当然还有所有相邻数据及其各自的行,如果这有意义的话)如果单元格 S3 的内容曾经更改过。

这在 VBA 中可行吗?

非常感谢。

【问题讨论】:

    标签: vba sorting excel


    【解决方案1】:

    您可以像这样使用Worksheet_Change 事件:

    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
    

    有关排序,请参阅here。 然而:

    在重新计算期间单元格发生变化时不会发生此事件。 使用Calculate 事件来捕获工作表重新计算。

    如果您需要检查重新计算引起的值变化,您必须将 S3 单元的旧值存储在一个变量中,并将这个旧值与新值进行比较。见this answer

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-10-12
      • 2013-11-14
      • 2015-08-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-30
      • 2021-04-11
      相关资源
      最近更新 更多