excel批量拆分工作簿,用VBA一鍵拆分,把數據分解到N個工作簿

2020-12-26 快學excel

在各行各業的日常工作中,經常需要把一份工作表的內容歸類拆分到N個工作簿,最基礎的辦法就是通過篩選、排序歸類數據,然後複製原數據,再新建工作簿,粘貼數據,如此往復......如果數量較小,這樣操作沒問題,如果分類的數據非常多,要新建幾百,幾千個工作簿,那就是一個非常大的工作量了。

此時就需要使用批量處理的方法,可以用PQ,也可以用VBA,本文就分享用VBA來處理批量拆分工作簿,用VBA的好處在於,只要代碼寫好,不需要懂代碼,任何人都可以直接拿來用,其他辦法就需要對軟體操作有一些要求了。

以下圖這個表格為例:

工作場景:這是一位學員給我提出的問題,她說這個表格每個星期要做一次,需要把這個表格按A列的店鋪名稱歸類到一起然後拆分到工作簿,A列中有幾個店就要拆分成幾個工作簿,並且還要保留原來的批註圖片,拆分出來的工作簿名稱以店鋪名稱命名。

這個問題的關鍵點:

1、A列的店鋪是無序的

2、保留表格中的批註圖片

3、工作簿命名為對應的店鋪名稱

OK,問題描述清楚了,那就開始講解VBA操作步驟。

VBA操作步驟

1、首先表格需要打開宏設置,點擊文件——excel選項——信任中心——信任中心設置——宏設置——啟用所有宏,然後點擊確定。

這個步驟,每臺電腦只要設置過一次,以後都默認開啟,如果你以前用過VBA那這個步驟可以略過。

2、滑鼠放在原數據所在的工作表,點擊滑鼠右鍵,查看代碼,進入VBA編輯界面

將代碼複製到上圖所示的區域中。

複製下面的代碼↓↓↓↓↓↓(黑色加粗部分)

Sub 按A列區分內容並拆分到工作薄()

Dim i%

arr = Sheets(1).[a1].CurrentRegion

Set d = CreateObject("scripting.dictionary")

For i = 2 To UBound(arr)

If d.exists(arr(i, 1)) Then

Set d(arr(i, 1)) = Union(d(arr(i, 1)), Rows(i))

Else

Set d(arr(i, 1)) = Union(Rows(1), Rows(i))

End If

Next i

For ss = 0 To d.Count - 1

Workbooks.Add

With ActiveWorkbook

d.items()(ss).Copy .Sheets(1).[a1]

.SaveAs ThisWorkbook.Path & "/" & d.keys()(ss)

.Close

End With

Next ss

MsgBox "快學Excel提示您,工作薄拆分完畢!"

End Sub

3、點擊運行(點擊綠色三角形),代碼運行時,屏幕會閃爍,拆分出來的新工作簿會放在原工作簿的路徑裡。如果原工作簿放在一個文件夾,那新拆分出來的工作簿也會在這個文件夾裡,如果原工作簿放在桌面,那拆分出來的工作簿就會放在桌面上。當拆分完畢時,會彈出提示框,表明代碼運行完畢。

拆分完畢後,新工作薄以店鋪名稱命名

拆分完後隨意打開一張看一下,店鋪名稱已經歸類拆分好了,並且批註圖片保留下來了。

如何根據自己的需求修改代碼?

上面的案例所用的代碼默認表格的格式為:表頭一行,拆分依據為A列

1、如果我的表頭是一行,但是我以B列為依據拆分應該如何對代碼進行調整呢?

把代碼的這4處(下圖中紅框標記處)修改為2

如果以C列為拆分依據就修改成3,以此類推。

2、如果我的表頭是多行並且表頭有合併單元格怎麼改代碼?

如下圖所示,表頭是2行,並且有合併單元格,以B列為拆分依據

表頭有合併單元對代碼運行沒有任何影響,無需針對這個修改代碼。

表頭如果是兩行需要對代碼,上面紅框處把2修改成3,下面紅框處rows(1)修改成rows("1:2")

如果表頭是3行,上面紅框就修改成4,下面紅框處就修改成rows("1:3") 以此類推。

好了關於如何用VBA拆分工作簿就分享到這裡,如果這篇文章能幫助到你請點讚,收藏,你的點讚是我繼續創作的動力。

本文由快學excel原創,歡迎大家關注。

相關焦點

  • Excel工作表拆分你喜歡哪一種?
    各位小夥伴有沒有遇到過這樣的問題:當我們把所有的信息匯總在一張表裡後,又需要將這張大表按某一條件再拆分成多個工作表。那怎麼才能實現呢?可能最笨的方法就是在原工作表篩選數據然後複製粘貼到新工作表,不過這種方法不適合數據多的案例,並且新工作表也需要一一重命名,顯得繁瑣。今天就給大家介紹兩種快捷實用的工作表拆分方法。
  • 隱藏EXCEL工作簿中的工作表,小白到高手的幾種方案 - EXCEl實戰派
    EXCEL工作簿中的工作表在默認情況下是全部開放的,也就是說,只要打開文件,任何用戶都可以對工作表進行任意操作。如果,你只想共享EXCEL數據分析處理的結果,又不想讓對方看見一些具體的工作表數據,就要對相關工作表進行隱藏處理。
  • Excel中多個工作簿之間數據的合併計算
    Excel中多個工作簿之間數據的合併計算大家好!今天分享的知識是Excel中的數據合併計算,這是我們在日常工作中經常要用到的功能,尤其是月末、季末、年末各種數據匯總的時候,下面就為大家舉例講解。一、合併計算的功能簡介合併計算是將源於相同或不同工作簿中多個工作表的數據收集到一個主工作表中,再進行各種相應的計算。這些工作表的結構可以完全相同,部分相同,表格的欄位相同但行列次序不同,或者完全不同,但都能通過合併得出一個包含全部表格數據的大表。
  • 如何將多個表格中數據匯總到一張表中
    前幾天有個讀者在後臺留言,如何將多個表格中的數據匯總到一張表裡。筆者查詢了相關資料,發現目前除了用vba編寫代碼之外,沒有特別簡單的方法,而寫代碼這件事情,非一日之功。因此筆者建議,此時,我們可以利用一些好用的插件進行數據匯總處理。利用「方方格子」這個插件,只需幾步就可以將多個表格中的數據進行匯總。直接在官網就可以下載,目前也還是免費使用的。
  • Excel 工作表如何拆分,教你這樣做,分分搞定
    Excel工作表拆分,如果方法掌握不得當,真的十分麻煩。其實有很多辦法實現,這裡運用vba代碼處理,一鍵式操作,方便快捷。2、導入工作表按鈕直接導入要拆分的工作表,這樣就實現了任何表都可以在這裡進行拆分。有一個小問題就是,拆分表第一行即是欄位行,不要帶標題,不然導入工作表後,列表框裡無法選擇拆分列。
  • Excel辦公技巧:快速將同一工作簿中的工作表名稱整理成目錄
    應用場景下圖工作簿中有多個工作表,我們想將紅色方框標註的幾個工作表名稱整理成目錄列表,放在工作簿最左側的工作表「案例目錄」中,有沒有什麼便捷的方法呢?下面我們一起來看一下。操作步驟1.在「案例目錄」工作表中,選中要存放工作表名稱的起始單元格A2,在「數據」選項卡「獲取和轉換」功能組中單擊「新建查詢」按鈕,在彈出的下拉列表中依次單擊「從文件」-「從工作簿」。
  • Excel的四個規範化操作,不懂這些的話總有一天你會被自己坑
    中的「凍結窗格」功能將某幾行或某幾列的數據凍結起來,這樣在滾動窗口時,所凍結的行或列的數據就會被固定顯示在屏幕上,從而不會隨著其他單元格的移動而變動,具體操作步驟如下。 第 2 步 隨後可看到選中行的上方會出現一條拆分的橫線,向下滑動滾動條,即可看到第 1 行和第2行的數據會固定保持不動,如下圖所示。
  • 10個Excel必備小技巧,你get了嗎?小白變大神的秘籍
    上了班後,發現無論什麼時候都需要一張excel表格,但是有的步驟不記得了怎麼辦?1.開始選項卡-填充-序列-輸入「1」2.按照「1」「3」「5」填充,同理Excel教程批量合併單元格及批量拆分合併單元格並填充數據一、批量合併單元格1.合併單元格,將相同內容進行合併
  • Excel工作表拆分多個文件,一鍵完成
    功能:把一個Excel表中的工作表拆分,分別保存為一個工作薄。主界面實際應用還是很方便的,如果有100個表要分別保存,這個工具還是很神奇的。主體代碼事件觸發做了個窗體單擊事件,也可以添加加到按鈕事件裡。
  • excel數據處理技巧:提取文件名的方法匯總
    3.任意命名名稱,如「提取文件名」,將引用位置修改為"=files("文件夾地址*.*")",其中第一個星號表示所有文件名稱,第二個星號表示所有文件類型。如果我們僅想提取其中的Excel文件,可以將第二個星號改為「xls」或「xlsx」。
  • Excel如何拆分單元格內容
    1、本文以Excel2019軟體進行演示說明,讓大家能夠清楚明白地了解Excel如何拆分單元格內容,讓大家都會進行此項操作;用該軟體打開Excel文檔,選中需要拆分內容的單元格2、在Excel2019軟體的菜單欄找到「數據」選項,並用滑鼠左鍵點擊該選項
  • excel數據處理技巧:對任意數字進行提取的方法匯總
    不管是從有規律的文本、還是沒有規律的文本中提取手機號、金額、尺寸等數據,都可以用兩端對齊法、快速填充法、Power Query法、Word替換法等5種方法進行提取,特別適合Excel小白使用。趕緊來看看具體操作吧!學習更多技巧,請收藏關注部落窩教育excel圖文教程。
  • 不知道數據如何進行拆分?python數據拆分3步法,靈活易用
    python的三方庫pandas有一些能根據指定面元或樣本分位數將數據拆分成多塊的工具(比如cut或qcut)。將這些函數跟groupby結合起來,就能非常輕鬆地實現對數據集的桶(bucket)或分位數(quantile)分析了。
  • 12個常用的Excel基礎操作與數據處理功能技巧,新手入門必學!
    12個基本操作與數據處理功能技巧 啟動與退出EXCEL 創建工作簿、界面介紹 工作表操作 單元格操作創建工作簿桌面→右鍵→新建excel檔界面介紹工作表(重命名、移動和複製、刪除)1、重命名:標移至sheet名→雙擊2、移動和複製:文檔內移動:左鍵+拖移,複製:
  • Excel快捷鍵:Ctrl鍵與26個字母鍵組合,收藏備用
    昨天教程中分享了Ctrl鍵與10個數字鍵組合應用技巧,今天來看看Ctrl鍵與26個字母組合能幹點什麼?01.【Ctrl+A】功能: 全選表格用法: 選中任意單元格,按Ctrl+A鍵,選中整個工作表,如果工作表中有多個表格,只選中一個數據連續的表格。02.
  • Excel表格中最經典的小技巧,全在這兒了!抓緊時間收藏吧!
    +箭頭鍵移動到行首:Home移動到工作表的開頭:Ctrl+Home移動到工作表的最後一個單元格,位於數據中的最右列的最下行:Ctrl+End向下移動一屏:PageDown向上移動一屏:PageUp向右移動一屏:Alt+PageDown向左移動一屏:Alt+PageUp切換到被拆分的工作表中的下一個窗格:Ctrl+F6切換到被拆分的工作表中的上一個窗格
  • 解決問題的方法——拆分(分而治之)
    所謂科學方法,本質上就是還原論方法;整個近代科學中,所有科學分支都以牛頓的力學理論為基石,用還原論方法來研究各自的對象,用公理化理論(至少是追求用這樣的理論)解釋自然。牛頓們總結的這些方法原則日益成為廣泛的共識,貫徹到科學活動中發展成為一套具體操作方法,以科學實驗、定量方法來支撐,像拆機器、剝洋蔥一樣,把研究對象一層一層地進行分解、還原。
  • Excel vlookup篩選兩列的重複項與查找兩個表格相同數據
    篩選兩列重複數據時,不僅僅是返回一項重複數據,是把所有重複的都標示出來;查找兩表格相同數據時,兩個表格既可以位於同一Excel文檔,又可分別位於兩個Excel文檔,並且也可以標示出所有重複的數據;當查找兩個位於不同Excel文檔中的表格相同數據時,查找範圍需要寫文檔名稱和工作簿名稱,這樣Excel才能找到查找區域。
  • 365天日報表用Excel 20秒生成!
    簡單方法肯定有,一起來操作吧操作步驟:1、製作數據透視表新建工作簿,在空表A列通過開始 -填充 -序列功能快速輸入全年日期點擊播放 GIF 0.0M選取A列插入數據透視表,把日期放在篩選框裡。點擊播放 GIF 0.0M2、生成日報表空表選取日報表 - 數據透視表工具 - 分析 - 數據透視表 -選項
  • 批量把Excel表另存為PDF(提升效率就學VBA)
    有個Excel工作簿,打開後有一個關於球員的檔案表,檔案表裡有一列是球員姓名,點擊該姓名會自動生成一張關於該球員的詳細資料,這份資料中有一個單元格,點擊此單元格又會生成一張關於該球員參加過的比賽資料以及戰績。該同學想把每位球員對應的詳細資料和戰績合併導出到一個PDF文件中,並以該球員的姓名命名。