根据行中日期的时间顺序重新排列同一位置的行列表

根据行中日期的时间顺序重新排列同一位置的行列表

我这个学期有四门课程需要规划。我在 excel 中将每门课程的测试和作业数据分别列在不同的表格中,如下所示:

https://i.stack.imgur.com/DZz8Wl.png

我想解决根据这些表的日期时间顺序在不同且单一的位置对这些表的行进行编译和重新排序的问题,如下所示:

https://i.stack.imgur.com/CXE4Ul.png

无论是使用公式、条件格式还是其他方法,最有效的方法是什么?

答案1

考虑了不同课程的数据范围和最终输出后,我建议您执行以下操作。

  1. 通过复制粘贴或 VBA 代码将所有 4 个部分收集到一个数据范围内。
  2. 按日期升序对整个范围进行排序。
  3. 最后应用条件格式。

您可以使用这个简单的 VBA 代码来复制和粘贴数据以及单元格格式,这将节省您的时间,并且您可以跳过格式。

Sub CommandButton1_Click()

Dim CopyRng As Range, PasteRng As Range

Title = "Copy & Paste"

Set CopyRng = Application.Selection

  Set CopyRng = Application.InputBox("Ranges to Copy :", Title, CopyRng.Address, Type:=8)
    Set PasteRng = Application.InputBox("Range to Paste, select Single cell):", Title, Type:=8)

       CopyRng.Copy

         PasteRng.Parent.Activate

           PasteRng.PasteSpecial xlPasteValuesAndNumberFormats

            PasteRng.PasteSpecial xlPasteFormats

         Application.CutCopyMode = False

End Sub

您可以使用此 VBA 代码按日期列进行排序。

Sub CommandButton2_Click()

Dim SortRange As Range, keyRange As Range

  Set SortRange = Application.InputBox("Sort Range", SortRange.Address,Type:=8)

  Set keyRange = Application.InputBox("Key Range", keyRange.Address,Type:=8) 

SortRange.Sort Key1:=keyRange, Order1:=xlAscending

End Sub

注意: 希望这对你有帮助。如果我的解决方案与你的想法不同,请发表评论。

相关内容