我有一个大约有3000行的大型Excel文件。
我想将此数据拆分为100行
组excel中是否有命令可以帮助我将这些数据拆分为不同的
每100行的工作表或文件?
答案 0 :(得分:3)
在对类似问题的另一个问题的答案中提供了很好的解决方案:https://stackoverflow.com/a/18001183
但是,我需要拆分文件而不向每个新文件添加标题,只需添加数据行。我的修改/简化代码:
Sub Test()
Dim wb As Workbook
Dim ThisSheet As Worksheet
Dim NumOfColumns As Integer
Dim RangeToCopy As Range
Dim WorkbookCounter As Integer
Dim RowsInFile
Dim Prefix As String
Application.ScreenUpdating = False
'Initialize data
Set ThisSheet = ThisWorkbook.ActiveSheet
NumOfColumns = ThisSheet.UsedRange.Columns.Count
WorkbookCounter = 1
RowsInFile = 100 'how many rows (incl. header) in new files?
Prefix = "test" 'prefix of the file name
For p = 1 To ThisSheet.UsedRange.Rows.Count Step RowsInFile
Set wb = Workbooks.Add
'Paste the chunk of rows for this file
Set RangeToCopy = ThisSheet.Range(ThisSheet.Cells(p, 1), ThisSheet.Cells(p + RowsInFile - 1, NumOfColumns))
RangeToCopy.Copy wb.Sheets(1).Range("A1")
'Save the new workbook, and close it
wb.SaveAs ThisWorkbook.Path & "\" & Prefix & "_" & WorkbookCounter
wb.Close
'Increment file counter
WorkbookCounter = WorkbookCounter + 1
Next p
Application.ScreenUpdating = True
Set wb = Nothing
End Sub
答案 1 :(得分:0)
您可以使用帮助列以这种方式执行此操作:
1 - 在左侧插入一列(即A栏)。
第二 - 填写1到3000系列中的新列(或者你有多少行)。
第3 - 在A列系列末尾下方的两个单元格中,放入100.5和200.5。突出显示这些单元格,然后使用 Ctrl + Shift + 向下箭头并选择Fill Series(将步长值保留为100)
第4天 - 升序排序栏A。
5 - 删除A栏。每隔100行就会有一个空行,剩下的就是剩下的一行。
答案 2 :(得分:0)
我发现了这个基于VBA的解决方案:http://nationbuilder.com/how_can_i_split_files_too_big_to_import
但是,该解决方案缺乏决定每个文件有多少行的能力。而是将文件拆分为具有相同行数的X个文件。当然,您可以通过将总行数除以您希望在每个文件中拥有的行数来计算这一点,但由于四舍五入,这很少会为您提供所需的行数。
也许有人可以想出一个修改过的宏?