我有一个大约有3000行的Excel文件。
我想把这些数据分成每组100行。
在Excel中是否有命令可以帮助我将这些数据分成不同的工作表或每100行一个文件?
我有一个大约有3000行的Excel文件。
我想把这些数据分成每组100行。
在Excel中是否有命令可以帮助我将这些数据分成不同的工作表或每100行一个文件?
在这个回答中,有一个不错的解决方案可以应用到类似问题上:https://dev59.com/O2Ml5IYBdhLWcg3w9qzu#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
我找到了这个基于VBA的解决方案:http://nationbuilder.com/how_can_i_split_files_too_big_to_import
然而,该解决方案缺乏决定每个文件有多少行的能力。相反,它将文件分成X个具有相等行数的文件。当然,你可以通过将总行数除以每个文件中想要拥有的行数来计算这个值,但由于四舍五入的原因,这很少会给你恰好想要的行数。
也许有人可以想出一个修改过的宏?