KutoolsforOffice — 一套方案,五大工具。事半功倍。三月特賣:20% 折扣

如何在 Excel 中勾選核取方塊時,自動將特定列移至新工作表?

作者Siluvia修改日期

在日常 Excel 使用中,經常會遇到需要根據核取方塊是否勾選,將特定列移至其他工作表的情境,例如任務狀態清單、訂單處理表單或資料審核檢查表。透過自動化此流程,不僅能大幅提升工作效率,還能維持資料的清晰與條理。本文提供多種實用解決方案,協助您在勾選核取方塊時,將對應列自動移至新工作表,滿足不同的操作偏好與資料管理需求。


透過 VBA 程式碼在勾選核取方塊時移動列

若您希望在勾選核取方塊時,自動將特定列移至指定工作表,Excel 的 VBA(Visual Basic for Applications)能提供高度客製化的解決方案,特別適合處理大型資料集或需頻繁執行此操作的使用者。

1. 開啟需根據核取方塊狀態移動列的工作表,前往開發人員 > 插入 > 核取方塊(ActiveX 控制項),將核取方塊插入工作表中。此控制項可讓您將動作連結至核取方塊,詳情請參閱截圖:

2. 在 Excel 視窗底部的工作表索引標籤上按一下滑鼠右鍵,從內容功能表中選擇檢視程式碼,即可開啟該工作表對應的程式碼視窗。請參閱截圖:

顯示在 Excel 中透過右鍵快捷選單存取「檢視程式碼」的螢幕截圖

3. 在出現的 Microsoft Visual Basic for Applications 視窗中,請將下列 VBA 程式碼複製並貼上至程式碼視窗:

VBA 程式碼:勾選核取方塊時將列移至指定工作表

Private Sub CheckBox1_Click()
    Dim xRg As Range
    Dim xAddress As String
    On Error Resume Next
    If CheckBox1.value Then
        xAddress = Application.ActiveWindow.RangeSelection.Address
        Set xRg = Application.InputBox("Please select the range row you will move(single cell):", "KuTools For Excel", xAddress, , , , , 8)
        If xRg Is Nothing Then Exit Sub
        Set xRg = xRg(1).EntireRow
        xRg.Copy
        ActiveWorkbook.Sheets("Sheet3").Range("A1").PasteSpecial xlPasteAllUsingSourceTheme
        xRg.Clear
        Application.CutCopyMode = False
    End If
End Sub

注意事項:程式碼中的 Sheet 3 與 A1 代表指定列將移至 Sheet 3 的第一列。請依您的需求調整這些數值。例如,若要將列移至 Sheet 2 並從 B10 開始,只需修改程式碼中的對應位置即可。

編輯巨集時務必格外謹慎,錯誤的修改可能引發錯誤或造成資料非預期移動。執行新的 VBA 程式碼前,請務必先儲存活頁簿,以便必要時還原變更。

4. 輸入程式碼後,按下 Alt + Q 即可離開 VBA 編輯器,返回 Excel 工作表。

5. 使用此功能前,請務必先在設計模式中關閉開發人員索引標籤中的設計模式。完成此步驟後,即可啟用核取方塊控制項,使其如預期觸發 VBA 巨集。

顯示如何從 Excel 的「開發人員」索引標籤關閉「設計模式」的螢幕截圖

6. 現在,點擊您新增的核取方塊,系統將彈出 Kutools for Excel 對話方塊,提示您選取欲移動列的第一個儲存格或整行。選取後,按一下確定,指定列將立即依照 VBA 程式碼的設定移至目標工作表。請參閱截圖:

顯示在 Excel 中根據核取方塊點擊來選取要移動之列的螢幕截圖


Excel 公式-標記並篩選待移動的列

以公式驅動的解決方案能協助您快速辨識:當勾選某列對應的核取方塊時,該列是否應被移動。此方法在資料輸入表格中尤其實用,特別是當核取方塊已連結至輔助欄位時。標記完成後,這些列可透過篩選功能手動複製貼上至其他工作表。由於無需使用 VBA,此方法非常適合不需嚴格自動化,或受限於巨集使用的環境。

假設您的 B2 至 B100 區域包含核取方塊,且已連結至 C2 至 C100 儲存格,而資料列位於 A2:B100,則可使用輔助欄位(例如 D 欄)搭配公式來標記已勾選的列:

1. 在 D2 儲存格中輸入下列公式:

=IF(C2=TRUE, "Move", "")

2. 按下 Enter 確認公式後,將其向下複製至所有資料列(例如 D2 至 D100)——您可拖曳填滿控點,或直接雙擊儲存格右下角快速完成!

3. 現在,您可以篩選 D 欄僅顯示「Move」,選取可見(已篩選)的列,並使用 Ctrl+C 與 Ctrl+V 將其複製到目標工作表。

提示:若您的核取方塊尚未連結至儲存格值,請逐一按一下滑鼠右鍵,設定其儲存格連結屬性,讓勾選或取消勾選時能自動將對應儲存格更新為 TRUE 或 FALSE,確保公式如預期順利運作!

優點:無需使用巨集,且適用於共用檔案。缺點:移動已標記的列時,仍需進行部分手動操作。


相關文章:

最佳 Office 生產力工具

🤖KUTOOLS AI 助手:基於以下內容徹底革新數據分析:智慧執行     產生程式碼  建立自訂公式    分析資料並產生圖表  呼叫增強函數……
熱門功能尋找、醒目提示或標記重複值     刪除空白行     合併列或儲存格而不遺失資料     不使用公式的四捨五入……
高級 LOOKUP多重條件 VLookup    多重數值 VLookup     跨多個工作表 VLookup      模糊查找……
高級下拉列表快速建立下拉式清單     相依式下拉式清單     多選下拉式清單……
欄位管理員新增指定數量的欄位移動欄位切換隱藏欄位的可見狀態比較範圍與欄位……
精選功能網格聚焦     設計視圖   增強編輯欄    工作簿與工作表管理員     資源庫(自動文字)  日期提取     合併工作表    加密/解密儲存格    依清單傳送電子郵件     超級篩選      特殊篩選(篩選粗體儲存格/斜體/刪除線……) ......
頂尖 15 工具組12 文字工具添加文本刪除特定字符,……)   50+ 圖表 類型甘特圖,……)   40+ 實用公式基於生日計算年齡,……)   19 插入工具插入二維碼從路徑插入圖片,……)   12 轉換工具金額轉大寫匯率轉換,……)   7 合併和拆分工具高級合併行分割儲存格,……)……以及更多
在您的慣用語言中使用 Kutools—支援英文、西班牙文、德文、法文、中文及另外 40+ 種語言!

運用 Kutools for Excel 強化您的 Excel 技能,體驗前所未有的高效能!Kutools for Excel 提供超過 300 項進階功能,大幅提升生產力並節省寶貴時間。立即點擊,取得您最需要的功能……


Office Tab 為 Office 帶來分頁式介面,讓您的工作更輕鬆自在!

  • 在 Word、Excel、PowerPoint 中啟用分頁式編輯與閱讀功能,以及 Access、Visio 與 Project。
  • 在同視窗的新分頁中開啟並建立多份文件,而非另開新視窗。
  • 每天為您提升 50% 的工作效率,並省下數百次滑鼠點擊!

所有 Kutools 增益集,一個安裝程式

Kutools for Office 套件整合了 Excel、Word、Outlook 與 PowerPoint 的增益集,以及 Office Tab Pro,非常適合需要跨多個 Office 應用程式協作的團隊使用!

ExcelWordOutlookTabsPowerPoint
  • 全能套件— 包含 Excel、Word、Outlook 與 PowerPoint 增益集,以及 Office Tab Pro
  • 一個安裝程式,一個授權— 數分鐘內即可完成設定(支援 MSI)
  • 協同運作更出色— 在多個 Office 應用程式間實現流暢的生產力體驗
  • 30 天完整功能試用— 無需註冊,無需信用卡
  • 超值之選— 比單獨購買各增益集更省費用