2014-03-07 155 views
0

我有一個大型的excel文件,大約有3000行。按行數分割大型excel文件

我想這個數據分割成100行

的羣體是否有Excel中的一個命令,可以幫助我拆分此數據爲不同

表或文件爲每100行?

+0

是的,有一個工具。你需要一個VBA腳本。 – Taosique

回答

0

你可以用一個輔助列這樣來做:

月1日 - 插入左側(即A列)一列。

2nd - 從1到3000(或您擁有的許多行)的系列中填寫新列。

3 - 在A列系列末尾的兩個單元格中,放入100.5和200.5。突出顯示這些細胞,然後使用按Ctrl ++向下箭頭,選擇填充系列(留下100步進值)

4日 - 升序排序列A.

5日 - 刪除A列。每隔100行將有一個空行,剩下的任何其他行。

0

我發現這個基於VBA的解決方案:http://nationbuilder.com/how_can_i_split_files_too_big_to_import

然而,該解決方案缺乏能力決定每個文件有多少行了。而是將文件分割成X個具有相等行數的文件。當然,您可以通過將行總數除以每個文件中要包含的行數來計算該值,但由於舍入原因很少會給出您想要的行數。

也許有人可以想出一個修改後的宏?在這個答案

+0

這實質上是一個鏈接唯一的答案。這個問題是,如果這個鏈接的網頁發生故障,這個答案將不再是有效的答案。 – Jerry

0

很好的解決方案,以類似的問題的另一個問題: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