excel如何把同一个工作簿中,指定工作表合并到一张工作表上(请使用VBA)
比如,我工作簿中有表1,表2,表3,表4,表5,表6。每张表的表头都是2行。我想只合并表1,表2,表3,表4.这四张表合并到一张总表上,要求只留表1的表头。如何写啊。我都...
比如,我工作簿中有表1,表2,表3,表4,表5,表6。每张表的表头都是2行。我想只合并表1,表2,表3,表4.这四张表合并到 一张总表上,要求只留表1的表头。如何写啊。我都折腾了3天了,总是全部合并,,,求大神帮忙啊。谢谢啊。。。
展开
3个回答
展开全部
按ALT+F11调出VBA窗口,插入一个模块,然后把下面的代码复制进去。
Sub hz()
Set NewSheet = Sheets.Add(Type:=xlWorksheet) '生成一个新表
Sheets(NewSheet.Index).Move Before:=Sheets(1) '将此新表移动到最前面
For i = 2 To Worksheets.Count
Sheets(i).UsedRange.Copy NewSheet.Cells([a65536].End(xlUp).Row + 2, 1) '将其他表的已使用区域复制到新表中
Next i
MsgBox "合并完成"
End Sub
执行代码即可
追问
这样不是就把这个工作薄中所有表都合并了呢,并且,所有表的表头是一样的,表头有两行,用您的方法,会留下所有的表头,我们只需要留下表1的表头就行了。希望我能说清楚了,
追答
哦,这样呀,那就把代码改成下面:
Sub hz()
Set NewSheet = Sheets.Add(Type:=xlWorksheet) '生成一个新表
Sheets(NewSheet.Index).Move Before:=Sheets(1) '将此新表移动到最前面
For i = 2 To Worksheets.Count
na = Sheets(i).Name
If na = "表一" Then Sheets(i).UsedRange.Copy NewSheet.Cells([a65536].End(xlUp).Row + 1, 1)
If na = "表二" Or na = "表三" Or na = "表四" Then
Sheets(i).UsedRange.Offset(2, 0).Copy NewSheet.Cells([a65536].End(xlUp).Row + 1, 1)
End If
Next i
MsgBox "合并完成"
End Sub
展开全部
其实,这个问题很简单,excel有个vlookup是查找列的函数,还有的函数是查找行的。hlookup。你可以用表头为匹配条件查找其他行。当然唯一不方便的是,因为你是6张表,所以需要分5部分写函数。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对表2、3、4的格式有要求吗?(即:是要复制,还是直接赋值也可以?)
最终是生成张新表还是直接在表1中?
最终是生成张新表还是直接在表1中?
追问
表1,表2,表3,表4 是我经常维护的表,这四张表表头是一样的,但是内容不一样,我想当我每次更新完表1,表2,表3,表4,就点击宏按钮,生成总表,并把原来的总表替换掉。这样我会永远看到更新后的总表。
我希望大神能够帮助我,在这个工作薄中有许多张表,但是我只需要合并表1,表2,表3,表4。。
追答
方便的话请把表发我邮箱,不想返工,谢谢理解
windimi007@163.com
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询