如何把excel中的多行数据按行数拆分成多个
生活随笔
收集整理的這篇文章主要介紹了
如何把excel中的多行数据按行数拆分成多个
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
原創鏈接 知乎 郭大牛 謝謝!解決了問題僅此記錄一下
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:="請用鼠標選擇表頭及表標題所在區域", Title:="選擇", Type:=8) '選取表頭區域Set data_column = Application.InputBox(prompt:="請鼠標選擇需要拆分數據的開始行區域", Title:="選擇", Type:=8) '選取拆分起始處m = data_column.Row '獲取分割開始行所在區域行號r = data_column.Column '獲取分割開始行所在區域列號j = data_column.Columns.Count '獲取分割開始行區域列數i = Application.InputBox(prompt:="請輸入每次分割數據條目數", Title:="選擇")'獲取需要分割的數據總條數。這里,可以用兩種辦法獲取到數據區域的尾部行號'第一種,使用傳統的:End(xlDown).Row,優點是速度快,缺點是有空白行時會出錯'第二種,使用查找方式find,優點是基本不會出錯,缺點是條數較多時候可能會慢一點'total_data = Cells(data_column(1, 1)).End(xlDown).Row - m + 1total_data = Cells.Find("*", LookIn:=xlFormulas, SearchDirection:=xlPrevious).Row - m + 1If MsgBox("本次分割文件數據總數為:" & 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 '第幾次分割輸出,用于標識分割文件次數For n = m To total_data Step i '從開始分割的行往下計數Set data_areas = Range(Cells(n, r), Cells(n + i - 1, j)) '設置每次循環體內的分割數據主體Application.Union(title_area, data_areas).Select '把表頭區域以及本次循環體內的數據區域進行合并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 '按照既有的文件名、路徑、循環次數合并起來存儲文件ActiveWindow.CloseNext nMsgBox "文件分割完畢!", vbDefaultButton1, "提示"End IfApplication.ScreenUpdating = True End Sub
雙擊啟動宏
原創鏈接 知乎 郭大牛 謝謝!解決了問題僅此記錄一下
https://zhuanlan.zhihu.com/p/81580481?from_voters_page=true
總結
以上是生活随笔為你收集整理的如何把excel中的多行数据按行数拆分成多个的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 2012MDCC中国·移动开发者大会 邀
- 下一篇: 【Unity Shader】渲染纹理实现