VBA 拆分Excel为多个文件

拆分之前数据:

按照B列类型拆分为多个文件,相同前缀的放到同一个Excel中,并且按照类型不同分成多个页存放。

拆分后文件:

VBA代码:

Sub SplitSheetDataBaseOnCloum()
    Dim objWorksheet As Excel.Worksheet
    Dim nLastRow, nRow, nNextRow As Integer
    Dim strColumnValue As String
    Dim objDictionary As Object
    Dim objFileName As Object
    Dim varCloumFiles As Variant
    Dim varCloumFileName As Variant
    Dim varColumnValues As Variant
    Dim varColumnValue As Variant
    Dim objExcelWorkbook As Excel.Workbook
    Dim sht As Worksheet
    Dim objSheet As Excel.Worksheet
    Dim stCount As Long
    Dim wrk As Workbook 'Workbook object
    Dim FileName As String
    Dim Path As String
    Dim resFile As String
    Dim tbl As ListObject
    Dim rng As Range
    
    'Get file name
    FileName = ThisWorkbook.Worksheets("Sheet1").Range("C3").Value
    Path = ThisWorkbook.Path & "\" & FileName & ".xlsx"  'File Location
    Dt = ThisWorkbook.Worksheets(&

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 您好!这条内容所提到的是将一个Excel文件拆分多个Excel文件的操作。如果您需要将一个Excel文件中的数据按照一定的条件或规则拆分多个Excel文件,则可以使用宏或VBA来实现。其中需要涉及到Excel对象模型的知识。 ### 回答2: VBA是Visual Basic for Applications的缩写,是微软Office应用程序中自带的编程语言,在Excel中可以通过VBA编写宏程序来自动化处理数据。如果用户想要将一个Excel表格拆分多个Excel表格,可以使用VBA编写一个宏程序来实现。 首先,在Excel中打开需要拆分的表格,然后按下“Alt+F11”打开VBA编辑器。在VBA编辑器中,创建一个新的宏程序,命名为“SplitExcel”。 接下来,定义一些变量和常量,如需要拆分的表格名称、每个拆分出来的表格行数、每个拆分出来的表格前缀等。具体代码如下: Sub SplitExcel() Dim rowTotal As Long Dim fileName As String Dim splitEveryRow As Integer Dim prefix As String Dim currentRow As Long Dim currentFileName As String Dim worksheetName As String Dim worksheetIndex As Integer Dim newRow As Long Dim newWorkbook As Workbook fileName = ActiveWorkbook.Name rowTotal = ActiveSheet.Range("A1").CurrentRegion.Rows.Count splitEveryRow = 100 prefix = "Split_" currentRow = 2 currentFileName = prefix & "1.xlsx" worksheetName = ActiveSheet.Name worksheetIndex = ActiveSheet.Index Set newWorkbook = Application.Workbooks.Add newRow = 1 ActiveSheet.Name = worksheetName ActiveSheet.Copy newWorkbook.Worksheets(newRow) newWorkbook.Worksheets(newRow).Name = worksheetName Do While currentRow <= rowTotal If newRow > splitEveryRow Then newRow = 1 newWorkbook.SaveAs prefix & splitFileIndex & ".xlsx" newWorkbook.Close Set newWorkbook = Application.Workbooks.Add splitFileIndex = splitFileIndex + 1 currentFileName = prefix & splitFileIndex & ".xlsx" End If Cells(currentRow, 1).Resize(1, 9).Copy _ newWorkbook.Worksheets(newRow).Cells(newWorkbook.Worksheets(newRow).Cells.SpecialCells(xlCellTypeLastCell).Row + 1, 1) currentRow = currentRow + 1 newRow = newRow + 1 Loop newWorkbook.SaveAs currentFileName newWorkbook.Close End Sub 以上是一个简单的VBA拆分Excel表格的程序,根据表格中的行数和拆分的行数自动生成不同的Excel表格,并将数据复制到各个表格中。不过需要注意,如果表格中包含多个工作表,需要在拆分之前选择拆分的工作表。拆分完成后,可以在程序所在的工作目录中找到拆分出来的各个Excel表格。 ### 回答3: VBA拆分Excel多个Excel是一种非常有用的操作技巧,它可以帮助用户在Excel中方便地将一个较大的表格分拆成多个小的Excel文件。这种拆分技巧能够为当今的企业提供协助。有些数据文件的大小超过了系统可用的简单系统。这时,将大型数据文件拆分成较小的Excel文件通常是消除瓶颈的好方法。 具体操作过程如下: 1.开启Excel VBA编程界面。 2.在“Developer”选项卡中,选择“Visual Basic”打开VBA窗口。 3.在VBA界面的工程视图中,右键单击工程名,选择“插入模块”添加一个空白模块。 4.在新建的模块中输入以下代码: Sub SplitExcel() 'Step1:定义变量,i用于计数,j用于循环操作 Dim i As Long, j As Long 'Step2:使用Application对象打开当前正在运行的Excel文件 Application.ScreenUpdating = False Application.DisplayAlerts = False 'Step3:初始化循环数据,找到所有列数 j = 1 '(确定列字段,定位到第一列) Do While Cells(1, j) <> "" j = j + 1 Loop 'Step4:确定分割数据的条数 j = j - 1 k = Int(ActiveCell.SpecialCells(xlLastCell).Row / 5000) 'Step5:开始分割 For i = 1 To k 'Step6:定义新的Excel文件名字和路径 FileName = ActiveWorkbook.Path & "\" & Replace(ActiveWorkbook.Name, ".xls", "") & "-" & Format(i, "000#") & ".xlsx" ActiveWorkbook.SaveCopyAs FileName 'Step7:确定数据的行数,按行进行复制操作 Range(Cells(1, 1), Cells(5000 * i, j)).Select Selection.Copy 'Step8:打开新创建的Excel文件,然后进行数据粘贴 Set NewWB = Workbooks.Open(FileName) NewWB.Worksheets.Add Range("A1").Select ActiveSheet.Paste 'Step9:进行第一个操作完成后,循环重新执行 NewWB.Close Next 'Step10:关闭循环,重置对象和应用程序 ActiveWorkbook.Close savechanges:=False Application.ScreenUpdating = True Application.DisplayAlerts = True End Sub 5.按F5运行该宏,将在所在的Excel文件夹中创建指定数量的Excel文件,并将原始文件的数据分割到这些文件中。 通过上述过程,就可以实现将一个Excel表格按照指定规则拆分多个Excel文件的操作。需要注意的是,代码中的具体数据规则和文件保存路径需要根据实际需要进行修改。这种VBA拆分Excel多个Excel的技巧不仅提高了Excel的使用效率,同时也让处理数据的工作更加简便。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值