如何把excel中的多行数据按行数拆分成多个
生活随笔
收集整理的這篇文章主要介紹了
如何把excel中的多行数据按行数拆分成多个
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
原創(chuàng)鏈接 知乎 郭大牛 謝謝!解決了問題僅此記錄一下
https://zhuanlan.zhihu.com/p/81580481?from_voters_page=true
首先打開一個excel 添加宏
將代碼編輯到宏中
Sub copybat()Dim i, j, k, m, r As IntegerDim n, total_data As LongDim path As StringDim title_area, data_column, data_areas As RangeSet title_area = Application.InputBox(prompt:="請用鼠標選擇表頭及表標題所在區(qū)域", Title:="選擇", Type:=8) '選取表頭區(qū)域Set data_column = Application.InputBox(prompt:="請鼠標選擇需要拆分數(shù)據(jù)的開始行區(qū)域", Title:="選擇", Type:=8) '選取拆分起始處m = data_column.Row '獲取分割開始行所在區(qū)域行號r = data_column.Column '獲取分割開始行所在區(qū)域列號j = data_column.Columns.Count '獲取分割開始行區(qū)域列數(shù)i = Application.InputBox(prompt:="請輸入每次分割數(shù)據(jù)條目數(shù)", Title:="選擇")'獲取需要分割的數(shù)據(jù)總條數(shù)。這里,可以用兩種辦法獲取到數(shù)據(jù)區(qū)域的尾部行號'第一種,使用傳統(tǒng)的:End(xlDown).Row,優(yōu)點是速度快,缺點是有空白行時會出錯'第二種,使用查找方式find,優(yōu)點是基本不會出錯,缺點是條數(shù)較多時候可能會慢一點'total_data = Cells(data_column(1, 1)).End(xlDown).Row - m + 1total_data = Cells.Find("*", LookIn:=xlFormulas, SearchDirection:=xlPrevious).Row - m + 1If MsgBox("本次分割文件數(shù)據(jù)總數(shù)為:" & total_data & "條,將會被分割成" & WorksheetFunction.RoundUp(total_data / i, 0) & "個文件," _& "點擊“確定”開始分割,點擊“取消”返回", vbOKCancel, "確認") = vbOK ThenFilename = Application.InputBox(prompt:="請輸入分割后的文件主名,默認為“分割文件”", Title:="選擇", Default:="分割文件")With Application.FileDialog(msoFileDialogFolderPicker) '獲取分割后的文件存儲路徑If .Show = False Then Exit Subpath = .SelectedItems(1) & "\" '加入"\",否則,文件會被存儲到選定路徑的上一層End WithApplication.ScreenUpdating = Falsek = 0 '第幾次分割輸出,用于標識分割文件次數(shù)For n = m To total_data Step i '從開始分割的行往下計數(shù)Set data_areas = Range(Cells(n, r), Cells(n + i - 1, j)) '設置每次循環(huán)體內(nèi)的分割數(shù)據(jù)主體Application.Union(title_area, data_areas).Select '把表頭區(qū)域以及本次循環(huán)體內(nèi)的數(shù)據(jù)區(qū)域進行合并Selection.CopyWorkbooks.AddSelection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _, SkipBlanks:=False, Transpose:=False '特殊粘貼:包含源格式的粘貼,以便保持所有格式一致k = k + 1ActiveWorkbook.SaveAs Filename:=path & Filename & "_" & k & ".xlsx", FileFormat:= _xlOpenXMLWorkbook, CreateBackup:=False '按照既有的文件名、路徑、循環(huán)次數(shù)合并起來存儲文件ActiveWindow.CloseNext nMsgBox "文件分割完畢!", vbDefaultButton1, "提示"End IfApplication.ScreenUpdating = True End Sub
雙擊啟動宏
原創(chuàng)鏈接 知乎 郭大牛 謝謝!解決了問題僅此記錄一下
https://zhuanlan.zhihu.com/p/81580481?from_voters_page=true
總結(jié)
以上是生活随笔為你收集整理的如何把excel中的多行数据按行数拆分成多个的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2012MDCC中国·移动开发者大会 邀
- 下一篇: 【Unity Shader】渲染纹理实现