在EXcel中,可以一个工作薄中包含多个工作表

kuaidi.ping-jia.net  作者:佚名   更新日期:2024-07-06
把excel一个工作簿中多个工作表的特定位置合并在一个表中

步骤1
利用FileDialog对象让用户指定待合并文件的路径,然后调用DIR方法将该路径下所有文件名包括路径写入数组中。
利用InputBox设计一个输入框,让用户指定标题行数量。利用For…Next循环将工作簿逐个打开,在循环中再套一层循环,逐一将工作表中的已用区域UsedRange除标题行外的所有数据复制到合并工作表C列第一个空单元格,直到最后一个工作簿的最后一个工作表。
所有数据粘贴的其实位置都从C列第一个空单元格开始,其中A列和B列则分别用于存放数据所对应的工作簿名与工作表名。工作簿名直接通过DIR从数组中获取,工作表名则通过循环体中的“Sheets(i).Name”语句获取
新建一个工作表,用于存放数据,然后按Alt+F11组合键打开VBE窗口,选择菜单“插入”——“模块”,并输入以下代码:
Sub 多工作簿合并()
Dim file() As String, FileStr As String, n As Integer, PathStr As String, HeadRows As Byte, Namess As String, ActiveWb As Workbook, Cell As Range
With Application.FileDialog(msoFileDialogFilePicker)
If .Show Then
PathStr = .SelectedItems(1)
Else
Exit Sub
End If
End With
On Error Resume Next
FileStr = Dir(PathStr & IIf(Right(PathStr, 1) = "\", "", "\") & "*.xls*")
While Len(FileStr) > 0
n = n + 1
ReDim Preserve file(1 To n)
file(n) = PathStr & IIf(Right(PathStr, 1) = "\", "", "\") & FileStr
FileStr = Dir()
Wend
If n = 0 Then MsgBox "没发现excel文件": Exit Sub
Set ActiveWb = ActiveWorkbook
HeadRows = Application.InputBox("请确认待合并工作簿的标题行数,改行将产生在合并工作表中作为新的标题行: ", "标题行", 1, , , , , 1)
If HeadRows < 1 Then Exit Sub
Range("A" & HeadRows & ":B" & HeadRows) = Array("工作簿名", "工作表名")
Application.Calculation = xlCalculationManual
Application.Calculation = xlCalculationManual
For k = 1 To n
Namess = Dir(file(k))
Workbooks.Open Filename:=file(k)
ActiveWb.Activate
If k = 1 Then Intersect(Wokbooks(Namess).Sheets(1).UsedRange, Workbooks(Namess).Sheets(1).Rows("1:" & HeadRows)).Copy Cells(1, 3)
For i = 1 To Workbooks(Namess).Sheets.Count
With Workbooks(Namess).Sheets(i).WsedRange
If Not IsEmpty(Workbooks(Namess).Sheets(i).UsedRange) Then
If .Rows.Count <= HeadRows Then GoTo liness
Set Cell = Cells(ActiveSheet.UsedRange.Rows.Count + 1, 3)
Intersect(.Offset(HeadRow, 0), .Cells).Copy Cell
Cell.Resize(.Rows.Count - HeadRows, .Columns.Count) = Intersect(.Offset(HeadRow, 0), .Cells).Value
Cell.Offset(0, -2) = Resize(.Rows.Count - HeadRows, 1).Merge
Cell.Offset(0, -2) = Namess
Cell.Offset(0, -1).Resize(.Rows.Count - HeadRows, 1).Merge
Cell.Offset(0, -1) = Workbooks(Namess).Sheets(i).Name
End If
End With
lines:
Next i
Workbooks(Namess).Close False
Next k
Application.ScreenUpdating = True
Application.Calculation = xlCalculationAutomatic
End Sub
光标置于代码中任意位置,并按F5键执行,将弹出“浏览”对话框。在对话框中选择目标文件夹后单击“确定”按钮。不需要打开文件,选择文件夹后直接单击“确定”按钮即可。

2步骤2
在弹出的“标题行”对话框中输入1,表示待合并工作簿中工作表的标题只有一行。
3步骤3
单击“确定”按钮,瞬间完成文件夹中所有工作簿数据的合并,下图是合并后的效果,A、B列用于存放工作簿名、工作表名,其他区域则是用户的数据

为了讲解的需要,小编特别制作了如图所示的两个表格,在此小编特意将其中的一个表中的姓名做了部分修改。


在此我们需要从Sheet3工作表中查找出已存在于Sheet4工作表中姓名相同的记录。对此在Sheet3工作表对应列中输入以下“=if(B2=”。

然后切换至Sheet4工作表中,选择姓名区域,并按回车键。

在返回sheet3工作表后,补全公式“=if(B2=Sheet4!B2:B24,"是","否")”并按回车。

然后将光标移动到单元格右下角,当鼠标变成黑色十字时,拖动完成公式的复制。然后就实现了数据的对比操作,同时也找出了重复的数据。


一个工作簿中可以设置1~255个工作表,如果需要超过255个工作表,可用插入工作表按钮完成,一个工作薄能含多少个工作表仅受内存限制。
增加多个工作表的方法如下:
1.打开工具栏,选择最下方的“选项”。

2.然后选择“常用”选项。

3.在新工作薄的工作表数中,选择要添加的工作表个数,最后选择确认,再新打开excel表格时,就会看到设置的工作表个数。

  • sheet1和sheet2是同一个工作簿中的工作表吗?
    答:每个工作表有一个名字,工作表名显示在工作表标签上。工作表标签显示了系统默认的个工作表名Sheet1,其中白色的工作表标签表示活动工作表。单击某个工作表标签,可以选择该工作表为活动工作表。工作薄中的每一张表格称为工作表。工作薄如同活页夹,工作表如同其中的一张张活页纸。工作表是Excel存储和处理...
  • EXCEL2003工作表和工作薄的区别?
    答:2、工作簿:每一本工作簿可以拥有许多不同的工作表,工作簿中最多可建立255个工作表。三、特点不同 1、工作表:行号显示在工作簿窗口的左边,列号显示在工作簿窗口的上边。2、工作簿:是Excel工作区中一个或多个工作表的集合,其扩展名为XLS。参考资料来源:百度百科-工作簿 参考资料来源:百度百科...
  • excel电子表格,一个文件最多可以放有多少行的数据?
    答:Excel程序支持的文件类型不止一种,在excel早期版本中,默认的工作薄扩展名为".xls",这种格式的文件最多可以包含255个工作页(Worksheet),每个工作页中包含65535行(Row)和256列(Column)。自Office2007版本起,excel默认的工作薄扩展名为".xlsx",这种格式的文件中每个工作页包含1048576行(Row),16384列(...
  • 在excel中,工作簿,工作表,单元格三者的关系是什么?
    答:1、所谓工作簿是指Excel环境中用来储存并处理工作数据的文件。也就是说Excel文档就是工作簿。它是Excel工作区中一个或多个工作表的集合,其扩展名为XLS,在Excel中,用来储存并处理工作数据的文件叫做工作簿。每一本工作簿可以拥有许多不同的工作表,工作簿中最多可建立255个工作表。打个比方,工作簿...
  • 怎样在EXCEL中引用数据表中的数据?
    答:.2、在弹出的对话框里选择第一个EXCEL文件,然后选择需要同步的工作簿(Sheet1或Sheet2等).3、点确定导入数据.4、当第一个EXCEL文件发生更改保存后,打开第二个EXCEL文件,在菜单栏【数据】→【刷新数据】.这样就可以了 1、首先在需要同步更新的表中有链接到原表的内容 2、打开需要同步更新的表,...
  • 在EXCEL一个工作薄中有很多工作表,用什么方法可以直接下翻另一个工作...
    答:可以超链接的方法。超入/超链接(ctrl+K)/ 在链接到选择,(本文档的位置),然后再选择你想插入的那个工作表就可以了。插入成功以后,你插入超链接的那个单元格,会有蓝色的字。然后点击进去,就会自动翻到你超入的那个工作表了。希望能帮到你,谢谢采纳!
  • Excel 同工作薄中,在一个表中插入一列,第二个表也自动插入一列,这是...
    答:按住ctrl,点击表一标题和表二的标题,如下图的sheet1和sheet2,将2个表组合在一起。修改一个表的同时,另一个表也被修改了。两个表在组合状态下,能看到右键有“取消组合工作表”选项。
  • excel怎样在一个工作薄里的多个工作表里插入相同的整列
    答:按住shift,鼠标左键依次点击要操作的Sheet,此时这些Sheet会成组 随便选择一个刚刚选中过的sheet,在里面插入一列,成组的其他sheet也会插入相同的列。延伸:关于组工作表的操作 组工作表可以对多张成组的sheet同时进行相同操作,包括但不限于:在同一个单元格(同一个区域)输入相同内容(或公式);对同...
  • 如何将excel同一个工作薄中不同工作表里同一列的数据求和?
    答:1、首先在打开的excel表格中可以看到有三个工作表,在三个表格中的A列都有数据。2、然后在B1单元格中输入计算公式:=A1+,然后切换到第二个表格中。3、再输入一个加号并且切换到第三个表格,可以看到最终的公式为:=A1+Sheet3!A1+Sheet3!A1。4、点击回车键即可生成计算结果,该计算结果为三个表格...
  • 一个Excel的工作薄最多可以打开多少个工作表?
    答:EXCEL中默认的工作表数量是3个;可以通过选项更改默认数量,但最多不超过255个;虽然可以一次性有255个工作表,但是工作表数量太多,往往会由于数据太多,导致内存不足,所以尽量归类,将确实需要放在一起的工作表并在一个工作簿中,可以分开的分开到不同的工作簿中。