如何将大型Excel表分解为多个表格

问题描述:

我有大量的Excel表格,其中有16k条记录,我想将它分成多个表格,如1张Excel表格中的2000条记录,如果有任何想法留下,那么应该将其添加到下一个请帮我解决这个问题。如何将大型Excel表分解为多个表格

感谢这么多提前 维贾伊·巴特

我不知道你知道多少关于VBA但你可以用下面的代码来实现自己的目标。我会发布2个选项。第一个宏将删除从源表单复制的行,第二个宏将保留源表单值。您只需使用源工作表的名称和每个生成工作表中需要的行数来更新代码。

更新项目

Set CWS = Sheets("Sheet2") 'Source Worksheet name 
LineNo = 5 ' Number of lines in each sheet 

宏1:将删除复制源从片的行。

Dim CWS As Worksheet 
Dim LastRow As Long 
Dim S_No As Long 
Dim LineNo As Long 

Set CWS = Sheets("Sheet2") 'Source Worksheet name 
LastRow = Range("A" & Rows.Count).End(xlUp).Row 
LineNo = 5 ' Number of lines in each sheet including header 
S_No = 1 

i = 1 
While i < LastRow 
    CWS.Range("1:" & LineNo).Copy 
    Sheets.Add After:=Sheets(Sheets.Count) 
    ActiveSheet.Name = "Partition " & S_No 
    Sheets("Partition " & S_No).Range("A1").PasteSpecial 
    CWS.Range("2:" & LineNo).Delete Shift:=xlUp 
    LastRow = CWS.Range("A" & Rows.Count).End(xlUp).Row 
    S_No = S_No + 1 
Wend 

宏2:将保持复制的行中源片。

Dim CWS As Worksheet 
Dim LastRow As Long 
Dim S_No As Long 
Dim LineNo As Long 

Set CWS = Sheets("Sheet2") 'Source Worksheet name 
LastRow = Range("A" & Rows.Count).End(xlUp).Row 
LineNo = 5 ' Number of lines in each sheet excluding header 
S_No = 1 

For i = 2 To LastRow 
    CWS.Range("1:1," & i & ":" & i + LineNo - 1).Copy 
    Sheets.Add After:=Sheets(Sheets.Count) 
    ActiveSheet.Name = "Partition " & S_No 
    Sheets("Partition " & S_No).Range("A1").PasteSpecial 
    i = i + Sheets("Partition " & S_No).Range("A" & Rows.Count).End(xlUp).Row - 1 
    S_No = S_No + 1 
Next 

更新:我已经更新了代码到第一行复制作为报头,以创建的所有片材。但请阅读LineNo变量旁边的注释。

+0

非常感谢帮助我是vba的初学者。我从家里学习。再次感谢 。 – 2015-02-18 08:29:09

+0

谢谢,但我仍然有一个疑问,我需要标题相同的所有表。再次感谢它真正的工作。 – 2015-02-18 08:47:00

+0

@vijaybhatt你好,我根据你的要求更新了代码。现在它会将第一行作为标题复制到所有页面。 – Dubison 2015-02-18 16:59:47