如何在 Excel 中输入或修改日期时实现自动排序?
作者:互联网
2026-04-13
在 Excel 中,排序功能可按需将日期按升序或降序排列,但它并非动态——一旦您完成排序后新增了日期,就得再次手动操作。有没有更高效快捷的方法,能在每次向工作表输入新数据时自动对日期排序?
使用公式在输入或更改日期时自动排序
使用 VBA 代码在输入或更改日期时自动排序
使用公式在输入或更改日期时自动排序
例如,若原始日期位于 A 列,以下公式可助您根据目标列自动将日期(或其他文本字符串)排序至新的辅助列中。请按以下步骤操作:
1. 输入以下公式:
将 =INDEX($A$2:$A$15,MATCH(ROWS($A$2:A2),COUNTIF($A$2:$A$15,"<="&$A$2:$A$15),0)) 输入到日期列旁边的空白单元格中(例如 )C2),然后同时按下 Ctrl + Shift + Enter 键以生成数字序列。接着,向下拖动填充柄至所需单元格。参见截图:
注意:在上述公式中,A2:A15 是您希望自动排序的原始日期范围。

2. 然后点击开始选项卡下的常规下拉列表中的短日期,将数字格式化为日期格式。参见截图:

3. 连续数字已自动转换为日期格式,原始日期也已完成排序。参见截图:

4. 从现在起,当您在 A 列中输入或修改日期时,C 列中的日期将自动按升序排列。参见截图:

使用 VBA 代码在输入或更改日期时自动排序
以下 VBA 代码可在您按需输入或更改日期时,自动对原始列中的日期进行排序。
1. 前往您希望在输入或修改日期时自动排序的工作表。
2. 右键单击工作表标签,从上下文菜单中选择查看代码,在弹出的 Microsoft Visual Basic for Applications 窗口中,将以下代码复制并粘贴到空白的模块窗口中。参见截图:
VBA 代码:在输入或更改日期时自动排序:
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
On Error Resume Next
If Application.Intersect(Target, Application.Columns(1)) Is Nothing Then Exit Sub
If Target.Count > 1 Then Exit Sub
Range("A1").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlYes, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom
End Sub

注意:在上述代码中,输入的日期将自动在 A 列中排序。您可以根据需要将 A1 和 A2 更改为所需的单元格。
3. 从现在起,当您在 A 列输入日期时,这些日期将自动按升序排序。
相关标签:
相关推荐
专题
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
+ 收藏
最新数据
相关文章
Microsoft Excel:通过 API 实现电子表格自动化 - Openclaw Skills
Excel / XLSX: 专业电子表格自动化 - Openclaw Skills
Excel 周报:Power Query 报告 - Openclaw Skills
xlsx-cn: 高级 Excel 电子表格处理 - Openclaw Skills
xlsx-pro: 专业 Excel 自动化与财务建模 - Openclaw Skills
电子表格:Excel 和 Google 表格自动化 - Openclaw Skills
自动化 Excel:电子表格自动化与数据处理 - Openclaw Skills
CSV 转 Excel 转换器:专业格式化与多工作表支持 - Openclaw Skills
考勤表生成器:自动化人力资源 Excel 报表 - Openclaw Skills
如何在 Excel 中根据多个条件查找并返回最大值?
AI精选
