C#(CSharp) | VC/C++ | C++Builder | ASP(ASP.NET) | SQL Server | OpenGL | CMM | 网站开发SEO | 数控技术 | 地理信息系统 | WINDOWS操作系统 |
联高软件 > 技术文档 > VB_ASP_VB.NET > EXCEL合并文件及合并工作表(工作薄)的通用方法[原创] VB_ASP_VB.NET软件开发参考文档

EXCEL合并文件及合并工作表(工作薄)的通用方法[原创]

发表:联高软件www.legalsoft.com.cn,本文被阅读:8745

摘要:文章:EXCEL合并文件及合并工作表(工作薄)的通用方法[原创] 摘要:使用MSOFFICEEXCEL的时候经常遇到:(1)需要将多个Excel文件进行合并;(2)需要将多个Sheet进行合并,发表于北京联高软件有限公司技术文章栏目,代码以高亮显示。
关键字:合并, 文件, excel, 原创, 通用, sheets, thisworkbook, filestoopen, for, count, sub, next, 功能, dim, end


使用MS OFFICE EXCEL的时候经常遇到:
(1)需要将多个 Excel 文件进行合并;
(2)需要将多个 Sheet 进行合并;
这里给出最佳答案。当然您得需要会使用宏(MICRO)。

功能一:合并Excel文件

Sub CombineWorkbooks()
Dim FilesToOpen, ft
Dim x As Integer
Application.ScreenUpdating = False
On Error GoTo errhandler

FilesToOpen = Application.GetOpenFilename _
(FileFilter:="Micrsofe Excel文件(*.xls), *.xls", _
MultiSelect:=True, Title:="要合并的文件")

If TypeName(FilesToOpen) = "boolean" Then
MsgBox "没有选定文件"
End If

x = 1
While x <= UBound(FilesToOpen)
Set wk = Workbooks.Open(Filename:=FilesToOpen(x))

wk.Sheets().Move after:=ThisWorkbook.Sheets _
(ThisWorkbook.Sheets.Count)
x = x + 1
Wend

MsgBox "合并成功完成!"

errhandler:
End Sub

功能二:合并任意的 Sheet
合并之前,请先创建一个空白的 Sheet 作为合并目标 Sheet ,这个 Sheet 必须是第一个 Sheet 哦。
如果不合并标题行(比如第一行)则 j=1 改为 j=2
如果数据不是从第一行,或者第一列开始的,请修改 j=1 及 k=2 两行的参数。
比如 j=2 k=3 表示从 第2行,第三列开始的数据。

Sub CombineSheet()

Dim i, j, k, n As Integer
n = 1
For i = 2 To ThisWorkbook.Sheets.Count
For j = 1 To ThisWorkbook.Sheets(i).UsedRange.Rows.Count
For k = 1 To ThisWorkbook.Sheets(i).UsedRange.Columns.Count
ThisWorkbook.Sheets(1).Cells(n, k).Value = ThisWorkbook.Sheets(i).Cells(j, k).Value
Next k
n = n + 1
Next j
Next i

End Sub

意外惊喜:合并 Sheet 的功能会自动去掉 超链接(HREF) 标记。
实际上,为了去掉 Excel 的所有超链接,也可以使用这个函数啊。

Thanks! Happy for your work!
Beijing Legalsoft Ltd.
2009-12-04

[VB_ASP_VB.NET] 怎么在html中include一个文件内容 (3488)
[VB_ASP_VB.NET] EXCEL合并SHEET的改进方法[原创] (1026)
[VB_ASP_VB.NET] ASP.NET保持用户状态的九种选择 (2144)
[VB_ASP_VB.NET] 如何插入Access库记录后马上得到自动编号值 (4651)
[VB_ASP_VB.NET] 编程入门:Basic/Visual Basic简介 (3064)
[VB_ASP_VB.NET] ASP.NET中的HTTP模块和处理程序 (1841)
[VB_ASP_VB.NET] 浅谈如何建立三层体系结构的ASP应用程序 (3499)
[VB_ASP_VB.NET] 基于ASP和COM组件的动态图表显示 (3955)
[VB_ASP_VB.NET] ASP.NET中发送Email完整实例 (2580)
[VB_ASP_VB.NET] XP 风格的可拖动列、可排序、可改变宽度的DataGrid的例子 (3468)
[VB_ASP_VB.NET] 用VB编写ASP组件 (5187)
[VB_ASP_VB.NET] 用Visual Basic设计三维图形按钮 (3774)
[VB_ASP_VB.NET] ASP提速技巧五则 (1900)
[VB_ASP_VB.NET] SQL Server访问ADO (2121)
[VB_ASP_VB.NET] 认识ASP.NET配置文件Web.config (3318)
[VB_ASP_VB.NET] Web开发框架中的架构模式比较(二) (3568)
[VB_ASP_VB.NET] ASP.NET Web Page应用深入探讨 (2261)
[VB_ASP_VB.NET] 带图片的,多列的DropDownList的实现 (2891)
[VB_ASP_VB.NET] 在 Web 窗体页之间传递值 (3441)
[VB_ASP_VB.NET] 深入研究ASP中的Application和Session对象 (2178)

www.315soft.com