vba將excel按照某一列拆分成多個文件
1.打開目標excel,按alt + f11鍵打開VBE窗口
2.選擇插入->模塊粘貼下面代碼到編輯器中
Sub 保留表頭拆分數(shù)據(jù)為若干新工作簿()
??? Dim arr, d As Object, k, t, i&, lc%, rng As Range, c% ??? c = Application.InputBox("請輸入拆分列號", , 4, , , , , 1) ??? If c = 0 Then Exit Sub ??? Application.ScreenUpdating = False ??? Application.DisplayAlerts = False ??? arr = [a1].CurrentRegion ??? lc = UBound(arr, 2) ??? Set rng = [a1].Resize(, lc) ??? Set d = CreateObject("scripting.dictionary") ??? For i = 2 To UBound(arr) ??????? If Not d.Exists(arr(i, c)) Then ??????????? Set d(arr(i, c)) = Cells(i, 1).Resize(1, lc) ??????? Else ??????????? Set d(arr(i, c)) = Union(d(arr(i, c)), Cells(i, 1).Resize(1, lc)) ??????? End If ??? Next ??? k = d.Keys ??? t = d.Items ??? For i = 0 To d.Count - 1 ??????? With Workbooks.Add(xlWBATWorksheet) ??????????? rng.Copy .Sheets(1).[a1] ??????????? t(i).Copy .Sheets(1).[a2] ??????????? .SaveAs Filename:=ThisWorkbook.Path & "\" & k(i) & ".xls" ??????????? .Close ??????? End With ??? Next ??? Application.DisplayAlerts = True ??? Application.ScreenUpdating = True ??? MsgBox "完畢" End Sub
3.保存后回到excel文件,選擇開發(fā)工具->插入->表單控件(按鈕(窗體控件)),沒有開發(fā)工具選項的在設置里面打開選項如圖
4.按住鼠標左鍵不動然后在excel中劃定一個按鈕區(qū)域,然后會自動彈出的窗口,選擇剛才保存的宏,點擊確定
5.鼠標從按鈕上面移開 ,然后點擊按鈕輸入要列號,就是根據(jù)哪列的數(shù)據(jù)進行拆分文件,下圖我們輸入4就是按照班級進行拆分,根據(jù)不同的班級拆分成不同的文件
6.點擊確定后,如果彈出完畢提示框代表拆分完成
7.到源文件所在的目錄文件中查看拆分的文件
到此這篇關于vba將excel按照某一列拆分成多個文件的文章就介紹到這了,更多相關vba excel拆分內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
關于vba代碼運行時錯誤1004?應用程序定義或?qū)ο蠖x錯誤問題
這篇文章主要介紹了vba代碼運行時錯誤1004?應用程序定義或?qū)ο蠖x錯誤,經(jīng)過一系列問題調(diào)查發(fā)現(xiàn)是工作表中數(shù)據(jù)存在異常,需要的朋友可以參考下2022-10-10當編輯框內(nèi)容改變 對應的單元格也隨著改變vba代碼
當編輯框內(nèi)容改變 對應的單元格也隨著改變vba代碼2009-07-07