Skip to main content

如何根據條件從多個工作表複製行到新工作表?

Author: Xiaoyang Last Modified: 2025-08-06

假設您有一個包含三個工作表的工作簿,這些工作表的格式相同,如下方截圖所示。現在,您想將這些工作表中C列包含“已完成”文本的所有行複製到一個新的工作表中。如何快速輕鬆地解決這個問題,而不用手動逐個複製和粘貼呢?

sample data 1 ample data 2 ample data 3

使用VBA代碼根據條件從多個工作表複製行到新工作表


使用VBA代碼根據條件從多個工作表複製行到新工作表

以下VBA代碼可以幫助您根據特定條件從工作簿中的所有工作表複製特定行到新工作表。請按照以下步驟操作:

1. 按住ALT + F11鍵打開Microsoft Visual Basic for Applications窗口。

2. 點擊插入 > 模塊,然後在模塊窗口中粘貼以下代碼。

VBA代碼:根據條件從多個工作表複製行到新工作表

Public Sub CopyRows_ValuesAndNumberFormats()
Dim xWs As Worksheet
Dim xCWs As Worksheet
Dim xRg As Range
Dim xStrName As String
Dim xRStr As String
Dim xRRg As Range
Dim xC As Integer
On Error Resume Next
Application.DisplayAlerts = False
xStr = "Kutools for Excel"
xRStr = "Completed"
Set xCWs = ActiveWorkbook.Worksheets.Item(xStr)
If Not xCWs Is Nothing Then
    xCWs.Delete
End If
Set xCWs = ActiveWorkbook.Worksheets.Add
xCWs.Name = xStr
xC = 1
For Each xWs In ActiveWorkbook.Worksheets
    If xWs.Name <> xStr Then
        Set xRg = xWs.Range("C:C")
        Set xRg = Intersect(xRg, xWs.UsedRange)
        For Each xRRg In xRg
            If xRRg.Value = xRStr Then
               xRRg.EntireRow.Copy
               xCWs.Cells(xC, 1).PasteSpecial xlPasteValuesAndNumberFormats
               xC = xC + 1
            End If
        Next xRRg
    End If
Next xWs
Application.DisplayAlerts = True
End Sub

注意:在上述代碼中:

  • xRStr = "Completed"腳本中的文本“已完成”表示您要根據其複製行的特定條件;
  • Set xRg = xWs.Range("C:C")腳本中的C:C表示條件所在的特定列。

3. 然後,按F5鍵運行此代碼,所有符合特定條件的行都將被複製並粘貼到當前工作簿中名為Kutools for Excel的新工作表中。請參見截圖:

vba code to copy rows from multiple worksheets based on criteria



更多相關提取或複製數據的文章:

  • 使用Excel中的高級篩選將數據複製到另一個工作表
  • 通常,我們可以快速應用高級篩選功能從同一工作表中的原始數據提取數據。但是,有時當您嘗試將篩選結果複製到另一個工作表時,會收到以下警告消息。在這種情況下,如何在Excel中處理此任務?
  • 根據列條件將行複製到Excel中的新工作表
  • 例如,有一個水果採購表,現在您需要根據指定的水果將記錄複製到新工作表,如何在Excel中輕鬆完成?這裡我將介紹幾種方法來根據列條件將行複製到Excel中的新工作表。
  • 如果列包含特定文本/值,則在Excel中複製行
  • 假設您想找出列中包含特定文本或值的單元格,然後複製找到的單元格所在的整行,該如何處理?這裡我將介紹幾種方法來查找列是否包含特定文本或值,然後在Excel中複製整行。

  • 超級公式欄(輕鬆編輯多行文字和公式);閱讀版面(輕鬆閱讀和編輯大量儲存格);貼上到已篩選區域...
  • 合併儲存格/列/欄並保留數據;分割儲存格內容;合併重複列並求和/平均值... 防止重複儲存格;比較區域...
  • 選擇重複或唯一列;選擇空白列(所有儲存格均為空);在多個工作簿中進行超級查找和模糊查找;隨機選擇...
  • 精確複製多個儲存格而不改變公式引用;自動創建對多個工作表的引用;插入項目符號、核取方塊等...
  • 收藏並快速插入公式、區域、圖表和圖片;使用密碼加密儲存格建立郵件清單並發送電子郵件...
  • 提取文本、添加文本、按位置刪除、刪除空格;創建並打印分頁小計;在儲存格內容和批註之間轉換...
  • 超級篩選(保存並應用篩選方案到其他工作表);高級排序按月/週/日、頻率等;特殊篩選按粗體、斜體...
  • 合併工作簿和工作表;基於關鍵列合併表格;將數據分割到多個工作表批量轉換 xls、xlsx 和 PDF...
  • 資料透視表按週數、星期幾等分組... 用不同顏色顯示未鎖定、已鎖定的儲存格突出顯示包含公式/名稱的儲存格...
kte tab 201905
  • 在 Word、Excel、PowerPoint、Publisher、Access、Visio 和 Project 中啟用標籤式編輯和閱讀。
  • 在同一窗口的新標籤中打開和創建多個文檔,而不是在新窗口中。
  • 提高您的生產力 50%,每天減少數百次鼠標點擊!
officetab bottom