![根据行中日期的时间顺序重新排列同一位置的行列表](https://linux22.com/image/1550633/%E6%A0%B9%E6%8D%AE%E8%A1%8C%E4%B8%AD%E6%97%A5%E6%9C%9F%E7%9A%84%E6%97%B6%E9%97%B4%E9%A1%BA%E5%BA%8F%E9%87%8D%E6%96%B0%E6%8E%92%E5%88%97%E5%90%8C%E4%B8%80%E4%BD%8D%E7%BD%AE%E7%9A%84%E8%A1%8C%E5%88%97%E8%A1%A8.png)
答案1
考虑了不同课程的数据范围和最终输出后,我建议您执行以下操作。
- 通过复制粘贴或 VBA 代码将所有 4 个部分收集到一个数据范围内。
- 按日期升序对整个范围进行排序。
- 最后应用条件格式。
您可以使用这个简单的 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
注意: 希望这对你有帮助。如果我的解决方案与你的想法不同,请发表评论。