首页 > 编程知识 正文

几个不同excel表格合并,excel怎么合并大小不一样的单元格

时间:2023-05-04 03:09:33 阅读:226081 作者:3301

合并excel分为两种情况:1、将多个excel文件合并在一个excel中的不同sheet中。2、将多个excel文件合并在一个excel文件的一个sheet中。

 1、将多个excel的文件合并在一个excel文件的不同sheet中。

(1)首先,我们在Epan下的vb文件夹中创建4个excel文件,明明如下。

(2)打开命名为allExcel文件,按alt+F11调出vb编辑接口

(3)点击ThisWorkBook,并粘贴如下代码:

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 = TrueEnd Sub

(3)按F5运行,会弹出让你选择要合并的文件夹的窗口

(4)代码执行结果如下:

2、将多个excel文件合并在一个excel文件的一个sheet中。

(1)打开allExcel调出VB编程接口,粘贴如下代码

sub 合并当前目录下所有工作簿的全部工作表() dim mypath, myname, awbname dim wb as workbook, wbn as string dim g as long dim num as long dim box as string application.screenupdating = false mypath = activeworkbook.path myname = dir(mypath & "" & "*.xls") awbname = activeworkbook.name num = 0 do while myname <> "" if myname <> awbname then set wb = workbooks.open(mypath & "" & myname) num = num + 1 with workbooks(1).activesheet .cells(.range("a65536").end(xlup).row + 2, 1) = left(myname, len(myname) - 4) for g = 1 to sheets.count wb.sheets(g).usedrange.copy .cells(.range("a65536").end(xlup).row + 1, 1) next wbn = wbn & chr(13) & wb.name wb.close false end with end if myname = dir loop range("a1").select application.screenupdating = true msgbox "共合并了" & num & "个工作薄下的全部工作表。如下:" & chr(13) & wbn, vbinformation, "提示" end sub

(2)按F5运行代码,选择要合并的文件,效果如下

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。