排序行:6 個交易,其中日期和操作資訊分組在一起

排序行:6 個交易,其中日期和操作資訊分組在一起

我需要按日期升序在電子表格中組織交易資訊。每行代表一個人及其歷史記錄中的最後 6 筆交易。問題是,雖然資料庫吐出最後 6 個事務,但它並不是按順序執行的,因此我需要在 Excel 中手動執行此操作。

交易日期和到期日期必須與「Is Gift」和「Action」資料保持關聯,因此使用行排序函數不適用於此應用程式。這四列需要作為一個組保持在一起。

在所附的螢幕截圖中,我使用顏色來顯示列需要如何保持分組在一起並以紅色突出顯示,如果資料順序正確,則應該首先進行事務。希望這能更清楚地表明問題(每個人的“第一個”位於不同的列中)以及我的目標是什麼(每個列組按行升序日期順序排序)。

附註解的螢幕截圖

答案1

試試這個程式碼。將其貼到 VB 編輯器視窗中並運行它(搜尋“如何運行 vba 代碼”以獲取更多幫助)。這根本沒有效率,但它應該有效。

Sub Some_Sorting_Procedure()
    Dim r As Long, last_row As Long
    Dim i As Long, j As Long
    Dim arr As Variant

    Application.ScreenUpdating = False

    With ActiveSheet
        last_row = .Cells(.Rows.Count, 1).End(xlUp).Row
        For r = 2 To last_row
            For i = 3 To 23 Step 4
                For j = i + 4 To 23 Step 4
                    If .Cells(r, i).Value > .Cells(r, j).Value Then
                        arr = .Cells(r, j).Resize(, 4).Value
                        .Cells(r, i).Resize(, 4).Cut .Cells(r, j)
                        .Cells(r, i).Resize(, 4).Value = arr
                    End If
                Next j
            Next i
        Next r
    End With
End Sub

編輯

這假設您的資料從 cell 開始A1,且第一列中沒有空白儲存格。硬編碼值23是因為您提到只有六筆交易。對於每筆額外的交易,您都需要將該數字增加 4。

相關內容