怎样用VBA将同一个工作簿中的指定工作表vba合并指定SHEET?


sheet2和sheet3拥有相同的表头,而数据不同,如何运用宏把他们合并到sheet1中。难点是sheet2和sheet3内的数据再不断增加,不是固定单元格。求编辑代码...
sheet2和sheet3拥有相同的表头,而数据不同,如何运用宏把他们合并到sheet1中。难点是sheet2和sheet3内的数据再不断增加,不是固定单元格。求编辑代码,或如何选中带有数据的单元格,谢谢
展开选择擅长的领域继续答题?
{@each tagList as item}
${item.tagName}
{@/each}
手机回答更方便,互动更有趣,下载APP
提交成功是否继续回答问题?
手机回答更方便,互动更有趣,下载APP
展开全部1.首先把需要合并的excel工作薄整理到一个文件夹中,如图,用来合并到一起的工作薄的名字要注意,这里取名叫“合并工作薄”。2.打开这个excel表,直接按键ALT+F11,进入下图界面。双击如图所示位置的sheet1。3.如图,打开准备好的VBA代码,复制到这个空白的代码编译处,代码如下:Sub 工作薄间工作表合并()Dim FileOpenDim X As IntegerApplication.ScreenUpdating = FalseFileOpen = Application.GetOpenFilename(FileFilter:="Microsoft Excel文件(*.xls),*.xls", MultiSelect:=True, Title:="合并工作薄")X = 1While X <= UBound(FileOpen)Workbooks.Open Filename:=FileOpen(X)Sheets().Move After:=ThisWorkbook.Sheets(ThisWorkbook.Sheets.Count)X = X + 1WendExitHandler:Application.ScreenUpdating = TrueExit Suberrhadler:MsgBox Err.DescriptionEnd Sub4.注意事项,如图,注意工作薄的名字,同时,注意代码中设定的excel版本。如果出现无法编译的情况,可以用这个共享的txt。5.回到“合并工作薄”的excel表格中,如图,点击工具(没有的到excel的选项中添加),选择宏。6.选择宏以后会出现下图界面,直接双击图中选项。7.双击后弹出选择待合并的文件夹中工作薄,直接全选要合并的工作薄即可。8.如图,这就是合并后的效果,这两个工作薄是下载的2014年的高考录取分数线的内容,效果不错,而且合并工作薄本身的工作表是不会被占用的,是新建的工作表。已赞过已踩过你对这个回答的评价是?评论
收起
展开全部5分钟学会在Excel中如何把多个工作表合并成一个表 N常用的技能展开全部下载“Excel汇总专家”能够解决你的问题
本回答被提问者采纳
收起
1条折叠回答
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
为你推荐:
下载百度知道APP,抢鲜体验使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。扫描二维码下载
×个人、企业类侵权投诉
违法有害信息,请在下方选择后提交
类别色情低俗
涉嫌违法犯罪
时政信息不实
垃圾广告
低质灌水
我们会通过消息、邮箱等方式尽快将举报结果通知您。说明
做任务开宝箱累计完成0
个任务
10任务
50任务
100任务
200任务
任务列表加载中...
}

当一张工作簿中含有多张格式相同但是具体内容不同(表头一致,其余不一致)的工作表时,如果工作表为最基本的表格,那么合并过程非常简单,故而本篇的重点不在于此,而在于当需要合并的表格为含有多个合并单元格的表格时,应该怎样解决,以及如果合并后的表格要进行二次利用时需要注意的事项和相对应的处理方法首先,需要合并的包含合并单元格的表格样式如下:与截图样式的一致的若干张表格需要合并成如下格式的汇总表:vba以及相关注释见如下代码:Sub 合并表格()
Application.ScreenUpdating = False
Sheet3.Select
Rows("1:1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Clear
'将汇总表里面上一次的结果清空
Sheet2.Visible = xlSheetVisible
'上一次运行最后将这张表隐藏了,故新的一次操作先将这张表的隐藏取消
Sheet2.Select
Rows("2:2").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Clear
'表格先清除上一次的数据
Dim i, m, A, N As Integer
For j = 1 To Sheets.Count
If Sheets(j).Name <> Sheet2.Name And Sheets(j).Name <> Sheet3.Name And Sheets(j).Name <> Sheet4.Name And Sheets(j).Range("D1") = "课程名称" Then
X = Sheet2.UsedRange.Rows.Count + 1
Y = Sheets(j).UsedRange.Rows.Count
Z = Sheets(j).Range("D65536").End(xlUp).Row
If Z > 1 Then
Sheets(j).Rows("2:" & Y + 1).Copy
Cells(X, 1).Select
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("K" & X & ":K" & Range("D65536").End(xlUp).Row) = Sheets(j).Name
A = A + 1
Else
Cells(X, 1).Select
N = N + 1
End If
End If
Next
'查询每一张具有有效数据的表格,并且按照原格式粘贴在汇总表中(这里先贴在隐藏表中)
For t = 1 To 3
For i = 2 To 10000
If Cells(i, t).MergeCells = True Then
'判断是否为合并单元格
m = Cells(i, t).MergeArea.Count
'计算合并单元格实际单元格的个数
Range(Cells(i, t), Cells(i + m - 1, t)).UnMerge
'拆分单元格
Range(Cells(i, t), Cells(i + m - 1, t)).FillDown
'填充单元格
i = i + m - 1
End If
Next
Next
'判断某个单元格是否是合并单元格,如果是,将合并单元格拆分并且填充
Range("D:D").Select
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.EntireRow.Delete
'删除空白行
'下面是对表格字体和边框做处理
Range("A1:K" & Range("B65536").End(xlUp).Row).Select
Selection.Borders(xlDiagonalDown).LineStyle = xlNone
Selection.Borders(xlDiagonalUp).LineStyle = xlNone
With Selection.Borders(xlEdgeLeft)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeTop)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeBottom)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlEdgeRight)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideVertical)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Borders(xlInsideHorizontal)
.LineStyle = xlContinuous
.ColorIndex = 0
.TintAndShade = 0
.Weight = xlThin
End With
With Selection.Font
.Name = "微软雅黑"
.Size = 9
.Strikethrough = False
.Superscript = False
.Subscript = False
.OutlineFont = False
.Shadow = False
.Underline = xlUnderlineStyleNone
.TintAndShade = 0
.ThemeFont = xlThemeFontNone
End With
Application.ScreenUpdating = True
Range(Selection, Selection.End(xlToRight)).Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
'复制隐藏表的内容,并且粘贴在汇总表里,这样做的目的是汇总表被二次引用时不会因为上面删除空白行而出现公式计算错误
Sheet2.Visible = xlSheetVeryHidden
'将sheet2,也即是隐藏表完全隐藏
Sheet3.Select
Range("A1").Select
ActiveSheet.Paste
Selection.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _
SkipBlanks:=False, Transpose:=False
Range("A1").Select
MsgBox "合并完毕! 其中" & A & "张表格有数据," & N & "张表格没有数据", vbInformation, "提示"
End Sub}

我要回帖

更多关于 vba合并指定SHEET 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信