重庆分公司,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1、导入VBA模块:新建一个EXCEL汇总表,将sheet1更名为“汇总表”,删除其余的工作表,按ALT+F11调出VBA编辑器→在工程窗口右击选择【导入文件】→选择VBA模块文件(快速合并工作表和工作簿。bas)→关闭VBA编辑器。导入后可以从【开发工具】→【宏】处看到“合并工作簿”和“合并工作表”两个宏。
创新互联是一家专注于网站制作、网站建设与策划设计,四子王网站建设哪家好?创新互联做网站,专注于网站建设十年,网设计领域的专业建站公司;建站业务涵盖:四子王等地区。四子王做网站价格咨询:028-86922220
2、制作一键"合并工作簿"和一键"合并工作表"按钮。插入矩形,输入文字“合并工作簿”并调整文字颜色大小和对齐方式等,然后复制一个矩形,并将文字改为“合并工作表”。选中文字为“合并工作簿”的矩形,右键→指定宏→选择宏“合并工作簿”,选中文字为“合并工作表”的矩形,右键→指定宏→选择宏“合并工作表”。
3、合并1至12月的12个工作簿数据到1个工作表。单击“合并工作簿”,首先选择需要合并的所有工作簿,点【打开】,将12个月的销售表合并到EXCEL汇总表。然后复制标题行到汇总表的第一行,再单击“合并工作表”,所有工作表即汇总到汇总表中了。
1、将需要合并的excel工作簿文件放置在一个文件夹中.在该文件夹中,新建立一个新的excel工作簿文件。重命名为8.2、打开新建立的excel工作簿文件8.按Alt+F11或者将鼠标移动到下方工作表名称sheet1上右键,选择查看代码。3、在弹出的代码编辑窗口中,输入代码。注意:通过快捷键Alt+F11打开的窗口如下没有直接复制代码的面板,需要点击左上方的工程-VBA project模块,双击sheet1,即可打开代码窗口。而步骤3中的第二种方法可以直接打开代码输入窗口。4、在代码窗口中,黏贴下列代码: Sub CombineFiles()Dimpath As StringDimFileName As StringDimLastCell As RangeDimWkb As WorkbookDimWS As WorksheetDimThisWB As StringDim MyDir AsStringMyDir =ThisWorkbook.path "\"'ChDriveLeft(MyDir, 1) 'find all the excel files'ChDir MyDir'Match =Dir$("")ThisWB =ThisWorkbook.NameApplication.EnableEvents = FalseApplication.ScreenUpdating = Falsepath =MyDirFileName =Dir(path "\*.xls", vbNormal)Do UntilFileName = ""If FileName ThisWB ThenSet Wkb = Workbooks.Open(FileName:=path "\" FileName)For Each WS In Wkb.WorksheetsSet LastCell = WS.Cells.SpecialCells(xlCellTypeLastCell)If LastCell.Value = "" And LastCell.Address = Range("$A$1").AddressThenElseWS.Copy After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)End IfNext WSWkb.Close FalseEnd IfFileName = Dir()LoopApplication.EnableEvents = TrueApplication.ScreenUpdating = TrueSet Wkb =NothingSet LastCell= Nothing End Sub5、点击菜单栏运行-运行子过程-用户窗体。关闭代码输入窗口。打开excel工作簿8.可以看到下方已经多了很多新的工作表——此时,已经将之前的工作簿中的工作表都复制到了这一新建的工作簿中。
首先定义
Public xlApp As Excel.Application
Public xlBook As Excel.Workbook Public xlSheet As Excel.Worksheet然后创建对象
xlApp = CreateObject("Excel.Application") '创建EXCEL对象
xlBook = xlApp.Workbooks.Open("文件路径") '打开已经存在的EXCEL工件簿文件
xlSheet = xlBook.Worksheets("sheet1")
1、在表格中的加载项中找到“方方格子”选择汇总拆分功能;
2、在下拉菜单中选择“合并多表”;
3、选择全部工作簿,然后选择需要合并的工作表,不需要合并的,则不在前面勾选;
4、运行后会弹出信息,点击确定,关闭
5、这样,在一个新的工作表中,就汇总了需要的数据。
附件中有完整示例,运行 hb 后会弹出选择合并文件夹的对话框,选择后会将被选目录下所有工作薄的工作表合并到一个新建工作薄,为区分方便,原工作薄中的所有工作表合并后的sheet名称以同一颜色显示,并以“原工作薄-原工作表”的格式命名sheet,以下为完整代码
Private Sub hb()
Dim hb As Object, kOne As Boolean, tabcolor As Long
Set hb = Workbooks.Add
Application.DisplayAlerts = False
For i = hb.Sheets.Count To 2 Step -1
hb.Sheets(i).Delete
Next
Dim FileName As String, FilePath As String
Dim iFolder As Object, rwk As Object, Sh As Object
Set iFolder = CreateObject("shell.application").BrowseForFolder(0, "请选择要合并的文件夹", 0, "")
If iFolder Is Nothing Then Exit Sub
FilePath = iFolder.Items.Item.Path
FilePath = IIf(Right(FilePath, 1) = "\", FilePath, FilePath "\")
FileName = Dir(FilePath "*.xls*")
Do Until Len(FileName) = 0
If UCase(FilePath FileName) UCase(ThisWorkbook.Path "\" ThisWorkbook.Name) Then
Set rwk = Workbooks.Open(FileName:=FilePath FileName)
tabcolor = Int(Rnd * 56) + 1
With rwk
For Each Sh In .Worksheets
Sh.Copy After:=hb.Sheets(hb.Sheets.Count)
hb.Sheets(hb.Sheets.Count).Name = FileName "-" Sh.Name
hb.Sheets(hb.Sheets.Count).Tab.ColorIndex = tabcolor
If Not kOne Then hb.Sheets(1).Delete: kOne = True
Next
.Close True
End With
End If
Set rwk = Nothing
FileName = Dir
Loop
Application.DisplayAlerts = True
End Sub
用一个VBA就可以实现的。
使用方法:
1、新建一个工作薄,将其命名为你合并后的名字。
2、打开此工作薄。
3、在其下任一个工作表标签上点击右键,选择“查看代码”。
4、在打开的VBA编辑窗口中粘贴以下代码:
Sub 工作薄间工作表合并()
Dim FileOpen
Dim X As Integer
Application.ScreenUpdating = False
FileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(*.xls),*.xls", MultiSelect:=True, Title:="合并工作薄")
X = 1
While X = UBound(FileOpen)
Workbooks.Open Filename:=FileOpen(X)
Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)
X = X + 1
Wend
ExitHandler:
Application.ScreenUpdating = True
Exit Sub
errhadler:
MsgBox Err.Description
End Sub
5、关闭VBA编辑窗口。
6、在excel中,工具---宏---宏,选“工作薄间工作表合并”,然后“执行”。
7、在打开的对话窗口中,选择你要合并的300个工作薄。
8、等待。。。。ok!