日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

如何把excel中的多行数据按行数拆分成多个

發(fā)布時間:2024/1/8 编程问答 31 豆豆
生活随笔 收集整理的這篇文章主要介紹了 如何把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)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。