如何根據Excel中的單元格值將整行移動到活動工作表的底部?
在 Excel 中,您可能經常需要根據特定列中的狀態或值重新整理您的資料。例如,在追蹤任務進度後,您可能希望將狀態為「已完成」的所有列移動到工作表的底部,並將正在進行的任務保持在頂部。根據單元格值自動重新定位整行可以使您的工作表更易於管理、突出顯示優先事項,並幫助您有效地專注於未完成的項目。
在 Excel 中有幾種方法可以實現這一點,包括使用 VBA 程式碼進行自動化,或者利用公式和 Excel 的內建排序功能。每種方法都有其自身的優勢,並且適用於不同的場景。以下是逐步解決方案,幫助您根據特定單元格值將整行移動到活動工作表的底部。
根據單元格值使用 VBA 程式碼將整行移動到活動工作表的底部
假設您有一個表格,其中 C 列包含狀態(例如「已完成」),並且您希望將 C 列中帶有「已完成」的任何一行立即重新定位到資料範圍的末尾。此 VBA 解決方案特別有用,如果您希望有一個可重複的半自動化流程,能夠處理動態資料變化而無需手動排序。
1. 同時按下 Alt + F11 鍵以打開 Microsoft Visual Basic for Applications 視窗。
2. 在 Microsoft Visual Basic for Applications 視窗中,點擊 插入 > 模組。然後將以下 VBA 程式碼複製並貼上到視窗中。
VBA 程式碼:根據單元格值將整行移動到活動工作表的底部
Sub MoveToEnd()
Dim xRg As Range
Dim xTxt As String
Dim xCell As Range
Dim xEndRow As Long
Dim I As Long
On Error Resume Next
If ActiveWindow.RangeSelection.Count > 1 Then
xTxt = ActiveWindow.RangeSelection.AddressLocal
Else
xTxt = ActiveSheet.UsedRange.AddressLocal
End If
lOne:
Set xRg = Application.InputBox("Select range:", "Kutools for Excel", xTxt, , , , , 8)
If xRg Is Nothing Then Exit Sub
If xRg.Columns.Count > 1 Or xRg.Areas.Count > 1 Then
MsgBox " Multiple ranges or columns have been selected ", vbInformation, "Kutools for Excel"
GoTo lOne
End If
xEndRow = xRg.Rows.Count + xRg.Row
Application.ScreenUpdating = False
For I = xRg.Rows.Count To 1 Step -1
If xRg.Cells(I) = "Done" Then
xRg.Cells(I).EntireRow.Cut
Rows(xEndRow).Insert Shift:=xlDown
End If
Next
Application.ScreenUpdating = True
End Sub
注意:在此 VBA 程式碼中,引用的特定值是 “已完成”。您可以修改程式碼中的該值以匹配您想要觸發行移動的值(例如,您可以將其更改為「已完成」或其他符合您工作流程的狀態)。確保該值完全匹配,包括大小寫和空格,或者如果需要的話,考慮調整程式碼以實現不區分大小寫的匹配。
3. 按下 F5 鍵或點擊 執行 按鈕來執行程式碼。在彈出的 Kutools for Excel 對話框中,選擇目標值可能出現的列範圍,然後點擊 確定 按鈕。
確認後,程式碼將自動搜尋所選列中值為“已完成”的行,並將它們移動到資料範圍的底部。這種重新排列即時發生,節省了您手動排序或拖動行的時間。
提示:
- 如果您有標題行,請確保在提示時不要將它們包含在選擇中,以免移動標題行。
- 此 VBA 腳本僅適用於當前活動的工作表。如果您需要在多個工作表上執行此操作,請對每個工作表重複該過程。
- 如果您的資料包含公式或連結的單元格,移動行可能會導致引用發生變化。運行宏後,請仔細檢查您的工作表以確保資料完整性。
此 VBA 方法在需要定期處理大量行的情況下表現出色,特別是在手動排序效率低下的情況下。然而,如果您需要一個不涉及宏的解決方案,或者如果您更喜歡直接使用公式和 Excel 的標準工具,請考慮下一種方法。

使用 Kutools AI 解鎖 Excel 的魔法
- 智能執行:執行單元格操作、分析數據並創建圖表——所有這些都由簡單的指令驅動。
- 自訂公式:生成量身定制的公式,簡化您的工作流程。
- VBA 編碼:輕鬆編寫和實現 VBA 代碼。
- 公式解釋:輕鬆理解複雜的公式。
- 文本翻譯:打破電子表格中的語言障礙。
使用 Excel 公式和排序將整行移動到底部
對於不想使用宏或希望以更透明、基於公式的方式管理數據的用戶,您可以通過使用輔助列和 Excel 的內置排序功能來實現相同的效果。此方法在協作環境或需要與其他可能啟用了宏安全設置的人共享的文件中效果很好。
1. 在現有數據的右側或左側插入一個新的輔助列。例如,如果您的數據標題在第1行,值從第2行開始,並且狀態在C列中,請插入一個新列D並將其標記為“排序鍵”或類似的名稱。
2. 在輔助列的第一個單元格(不包括標題,例如D2)中輸入以下公式:
=IF(C2="Done",1,0)
此公式將為C列為“已完成”的行分配1,其他所有行分配0。
3. 按 Enter 鍵確認公式,然後將其複製到所有數據行旁邊。只需將填充柄從 D2 拖動到數據的最後一行,或者如果相鄰列已填充,則雙擊填充柄以進行自動填充。
4. 選擇數據範圍內的任意單元格,然後從 Excel 功能區中,轉到 數據 選項卡並點擊 排序。
5. 在 排序 對話框中,從“排序依據”下拉菜單中選擇輔助列(“排序鍵”),並選擇 從小到大 的順序。這會將所有“已完成”(標記為1)的行保留在底部,而其他的(標記為0)則保留在頂部。
6. 點擊 確定 以應用排序。現在,您的數據將重新排列,所有已完成或“已完成”條目都會出現在表格的底部。
參數解釋和提示:
- 您可以將公式中的“已完成”更改為任何其他與您的表格相關的狀態指示符(例如,“已完成”、“非活動”)。確保拼寫完全匹配您的數據。
- 如果您想移動具有多個值的行(例如,“已完成”和“已取消”),請使用如下公式:
=IF(OR(C2="Done",C2="Canceled"),1,0)
- 要反轉效果(即“已完成”行位於頂部),請按 從大到小 排序,或在公式中交換0和1。
此方法不會刪除或隱藏任何行,並保持您的數據結構完整。它非常適合與他人合作,確保不同 Excel 版本之間的兼容性,並避免潛在的宏啟用文件問題。
相關文章:
最佳 Office 生產力工具
🤖 | Kutools AI 助手:以智能執行為基礎,革新數據分析 |生成程式碼 | 創建自訂公式 | 分析數據並生成圖表 | 調用 Kutools 增強函數… |
熱門功能:查找、選取項目的背景色或標記重複值 | 刪除空行 | 合併列或單元格且不遺失數據 | 四捨五入(免公式)... | |
高級 LOOKUP:多條件 VLookup|多值 VLookup|多表查找|模糊查找... | |
高級下拉列表:快速創建下拉列表 |依賴型下拉列表 | 多選下拉列表... | |
列管理器:添加指定數量的列 | 移動列 | 切換隱藏列的顯示狀態 | 比較區域及列... | |
精選功能:網格聚焦 | 設計檢視 | 增強編輯欄 | 工作簿及工作表管理器 | 資源庫(快捷文本) | 日期提取器 | 合併資料 | 加密/解密儲存格 | 按列表發送電子郵件 | 超級篩選 | 特殊篩選(篩選粗體/傾斜/刪除線...)... | |
15 大工具集:12 項文本工具(添加文本、刪除特定字符…)|50+ 儀表 類型(甘特圖等)|40+ 實用 公式(基於生日計算年齡等)|19 項插入工具(插入QR码、根據路徑插入圖片等)|12 項轉換工具(金額轉大寫、匯率轉換等)|7 項合併與分割工具(高級合併行、分割儲存格等)|...及更多 |
運用 Kutools for Excel,全面提升您的 Excel 技能,體驗前所未有的高效。 Kutools for Excel 提供超過300 項進階功能,讓您提升工作效率、節省時間。 點此尋找您最需要的功能...
Office Tab 為 Office 帶來分頁介面,讓您的工作更加輕鬆簡單
- 在 Word、Excel、PowerPoint 中啟用分頁編輯與閱讀。
- 在同一視窗的新分頁中打開與創建多份文件,而非開啟新視窗。
- 提升您的生產力50%,每日可幫您減少數百次鼠標點擊!
所有 Kutools 外掛,一次安裝
Kutools for Office 套裝整合了 Excel、Word、Outlook 和 PowerPoint 的外掛,外加 Office Tab Pro,非常適合需要跨 Office 應用程式協同作業的團隊。





- 全合一套裝 — Excel、Word、Outlook及 PowerPoint 外掛 + Office Tab Pro
- 一鍵安裝,一份授權 — 幾分鐘完成設置(支援 MSI)
- 協同運作更順暢 — Office 應用間無縫提升生產力
- 30 天全功能試用 — 無需註冊、無需信用卡
- 最超值 — 一次購買,節省單獨外掛費用