按行数拆分大型Excel文件

时间:2014-03-07 09:19:12

标签: excel split large-data

我有一个大约有3000行的大型Excel文件。

我想将此数据拆分为100行

excel中是否有命令可以帮助我将这些数据拆分为不同的

每100行的工作表或文件?

3 个答案:

答案 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个文件。当然,您可以通过将总行数除以您希望在每个文件中拥有的行数来计算这一点,但由于四舍五入,这很少会为您提供所需的行数。

也许有人可以想出一个修改过的宏?