如果您在每个工作表上都具有结构相同的数据的工作簿,则可能会对将多个工作表合并为一个大工作表的方法感兴趣。

进行合并的概念很简单:您只需要将数据从第二个及后续工作表复制到第一个工作表的第一个空行。幸运的是,Excel包含一项功能,使您可以执行此过程-整合工具。

合并工具使您可以合并工作表,其中数据是按位置或类别定义的。按位置表示数据在每个工作表上都位于相同位置。例如,如果每个工作表上的数据表具有完全相同的列,那么您将按位置进行合并。按类别表示您要合并表中的数据,这些表中的数据可能没有使用一致的结构。如果数据表中的列的顺序不同,则可以使用这种类型的合并。

在要合并其工作表的工作簿中,选择“数据” |“合并”。巩固。 Excel将显示“合并”对话框。 (请参见图1。)

对话框中有许多控件,但是您需要担心的主要事情是指定要合并的范围。

image

图1.“合并”对话框。

您可以使用“参考”框指定范围。在框中指定要合并的第一个范围。如果要按位置合并,则参考不应包含任何列标签;如果按类别,那么您应该。指定范围参考时,单击“添加”,该参考将出现在“所有参考”列表中。您将继续定义参考范围,直到它们全部完成。

如果您希望合并数据包含原始数据的链接,请确保选中“创建到源数据的链接”复选框,否则请清除它。然后,您可以单击“确定”进行合并。

请注意,“合并”对话框中还有其他控件。上面提到的控件是您至少应注意的控件。找出其他人做什么的最好方法是与他们一起玩耍,进行一些合并。

如果您不想使用合并工具,则可以轻松创建一个宏来为您做合并-只要每个工作表的结构相同。下面的宏逐步浏览所有工作表,并将数据合并到工作表开头添加的新工作表中。

Sub Combine()

Dim J As Integer

On Error Resume Next     Sheets(1).Select     Worksheets.Add ' add a sheet in first place     Sheets(1).Name = "Combined"



' copy headings     Sheets(2).Activate     Range("A1").EntireRow.Select     Selection.Copy Destination:=Sheets(1).Range("A1")



' work through sheets     For J = 2 To Sheets.Count ' from sheet 2 to last sheet         Sheets(J).Activate ' make the sheet active         Range("A1").Select         Selection.CurrentRegion.Select ' select all cells in this sheets

' select all lines except title         Selection.Offset(1, 0).Resize(Selection.Rows.Count - 1).Select

' copy cells selected in the new sheet on last line         Selection.Copy Destination:=Sheets(1).Range("A65536").End(xlUp)(2)

Next End Sub

完成宏后,工作簿中的第一张工作表名为Combined,具有来自其他工作表的所有数据。其他工作表保持不变。

注意:

如果您想知道如何使用此页面(或_ExcelTips_网站上的任何其他页面)中描述的宏,我准备了一个特殊页面,其中包含有用的信息。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本技巧(3005)适用于Microsoft Excel 97、2000、2002和2003。可以在以下功能区中为Excel的功能区界面(Excel 2007及更高版本)找到本技巧的版本: