在資料分析中,有時您可能需要根據特定列將 Excel 工作表中的內容拆分到多個 Excel 工作簿中。本文將教您兩種快速實現此目的的方法。
許多用戶經常需要根據特定列將包含大量數據行的Excel工作表拆分為多個單獨的Excel工作簿。 例如,這是我的示例Excel工作表。 我想根據“單個許可證的價格(美元)”列將此工作表的數據拆分為多個工作簿。

通常,您傾向於使用以下方法1手動篩选和複製數據。 但是,如果過濾器選項太多,將非常繁瑣而愚蠢。 因此,這裡我們還展示了一種更為方便的方法-方法2,該方法使用了VBA。 現在,繼續閱讀以獲取詳細信息。
方法1:篩選後將內容複製到單獨的Excel工作簿
- 首先,在特定列中選擇一個單元格,例如我自己的實例中的“ Cell B1”。
- 然後,轉到“數據”選項卡,然後單擊“過濾器”按鈕。
- 接下來,單擊列標題中的“向下箭頭”按鈕以顯示過濾器選項列表。
- 現在,取消選中“(全選)”選項。
- 之後,您可以選擇一個過濾器選項,例如在我的示例中為“ 29.95”,然後單擊“確定”。
- 一次僅保留B列中值為“ 29.95”的數據。
- 然後,複製過濾的數據並將其粘貼到新的Excel工作簿中。
- 以後,使用相同的方法將其他數據拆分為單獨的Excel工作簿。
方法2:通過VBA將內容批量拆分為多個Excel工作簿
- 首先,請確保已打開特定的工作表。
- 接下來,根據“啟動VBA編輯器”如何在Excel中運行VBA代碼“。
- 然後,將以下代碼放入“ ThisWorkbook”項目。
Sub SplitSheetDataIntoMultipleWorkbooksBasedOnSpecificColumn()
Dim objWorksheet As Excel.Worksheet
Dim nLastRow, nRow, nNextRow As Integer
Dim strColumnValue As String
Dim objDictionary As Object
Dim varColumnValues As Variant
Dim varColumnValue As Variant
Dim objExcelWorkbook As Excel.Workbook
Dim objSheet As Excel.Worksheet
Set objWorksheet = ActiveSheet
nLastRow = objWorksheet.Range("A" & objWorksheet.Rows.Count).End(xlUp).Row
Set objDictionary = CreateObject("Scripting.Dictionary")
For nRow = 2 To nLastRow
'Get the specific Column
'Here my instance is "B" column
'You can change it to your case
strColumnValue = objWorksheet.Range("B" & nRow).Value
If objDictionary.Exists(strColumnValue) = False Then
objDictionary.Add strColumnValue, 1
End If
Next
varColumnValues = objDictionary.Keys
For i = LBound(varColumnValues) To UBound(varColumnValues)
varColumnValue = varColumnValues(i)
'Create a new Excel workbook
Set objExcelWorkbook = Excel.Application.Workbooks.Add
Set objSheet = objExcelWorkbook.Sheets(1)
objSheet.Name = objWorksheet.Name
objWorksheet.Rows(1).EntireRow.Copy
objSheet.Activate
objSheet.Range("A1").Select
objSheet.Paste
For nRow = 2 To nLastRow
If CStr(objWorksheet.Range("B" & nRow).Value) = CStr(varColumnValue) Then
'Copy data with the same column "B" value to new workbook
objWorksheet.Rows(nRow).EntireRow.Copy
nNextRow = objSheet.Range("A" & objWorksheet.Rows.Count).End(xlUp).Row + 1
objSheet.Range("A" & nNextRow).Select
objSheet.Paste
objSheet.Columns("A:B").AutoFit
End If
Next
Next
End Sub
- 之後,單擊工具欄中的“運行”圖標或按“ F5”鍵按鈕。
- 宏完成後,將使用源Excel工作表中的拆分數據創建單獨的Excel工作簿。
- 每個工作簿將類似於以下屏幕截圖。
競品對比
| 優點 | 缺點 | |
| 方法1 | 1.易於所有Excel用戶操作 | 如果選擇的過濾器太多會造成麻煩 |
| 2.如果過濾器選擇很少,則快速 | ||
| 方法2 | 無論選擇哪種過濾器,效率都比方法1高得多 | VBA新手很難操作 |
防止Excel數據丟失
儘管MS Excel變得越來越先進和完善,但由於諸如惡意的第三方加載項或人為錯誤等各種因素,MS Excel仍會不時崩潰。 由於Excel崩潰可以直接導致 Excel損壞,為了避免Excel數據丟失,您必須定期備份Excel文件。 否則,您需要應用Excel修復工具,例如 DataNumen Excel Repair 修復損壞的Excel文件。
作者簡介:
Shirley Zhang是的數據恢復專家 DataNumen,Inc.是數據恢復技術的全球領導者,包括 SQL Server 修復 和Outlook修復軟件產品。 欲了解更多信息,請訪問 萬維網。datanumen.COM






