vbs 合并多个excel文件的脚本
来源: 阅读:2487 次 日期:2016-07-18 11:51:20
温馨提示: 小编为您整理了“vbs 合并多个excel文件的脚本”,方便广大网友查阅!

费了不少时间,但总算搞定了,试一下,如果excel文件多于一行,还需要稍微修改一下.

代码如下:

Const xlWorkbookNormal = -4143

Const xlSaveChanges = 1

objStartFolder = "c:\test" '要读取的源文件目录

desExcel= "c:\result1.xls" '最后生成的汇总excel

Set ExcelApp = CreateObject("Excel.Application")

Set destbook = ExcelApp.Workbooks.Add '创建空文件

Set objFSO = CreateObject("Scripting.FileSystemObject")'建立filesystemobject

Set objFolder = objFSO.GetFolder(objStartFolder)'获取文件夹

Set colFiles = objFolder.Files '获得源目录下所有文件

intRow=1 '行数

For Each objFile in colFiles '依次处理文件夹中的文件

If UCase(Right(Trim(objFile.Name), 3)) ="XLS" Then '只处理xls文件

Set srcbook = ExcelApp.Workbooks.Open(objStartFolder + "\" + objFile.Name) '打开xls文件

'srcbook.Worksheets(1).Copy destbook.Worksheets(1)

srcbook.activate

intCol = 1 '列数

Do Until ExcelApp.Cells(1,intCol).Value = ""

tempdata=ExcelApp.Cells(1, intCol).Value

destbook.activate

ExcelApp.Cells(intRow, intCol).Value=tempdata

srcbook.activate

intCol = intCol + 1

Loop

srcbook.Close '关闭已经打开的xls文件

End If

intRow=intRow+1

Next

destBook.SaveAs desExcel,xlWorkbookNormal

destBook.close xlSaveChanges

ExcelApp.quit

這個方法OK

在存放文件的目录之外打开一个空的Excel文档

运行下面分宏:(注意文件目录)

代码如下:

Sub cfl()

Dim fs, f, f1, fc, s, x

Set fs = CreateObject("Scripting.FileSystemObject")

Set f = fs.GetFolder("e:\test\") '存放文件的目录

Set fc = f.Files

For Each f1 In fc

If Right(f1.Name, 3) = "xls" Then

x = x + 1

Workbooks.Open (f1.Path)

For i = 1 To 255

Workbooks(1).Sheets(1).Cells(x, i).Value = _

Workbooks(2).Sheets(1).Cells(1, i).Value

Next

Workbooks(2).Close savechanges:=False

End If

Next

End Sub

更多信息请查看脚本栏目
由于各方面情况的不断调整与变化, 提供的所有考试信息和咨询回复仅供参考,敬请考生以权威部门公布的正式信息和咨询为准!

2025国考·省考课程试听报名

  • 报班类型
  • 姓名
  • 手机号
  • 验证码
关于我们 | 联系我们 | 人才招聘 | 网站声明 | 网站帮助 | 非正式的简要咨询 | 简要咨询须知 | 加入群交流 | 手机站点 | 投诉建议
工业和信息化部备案号:滇ICP备2023014141号-1 云南省教育厅备案号:云教ICP备0901021 滇公网安备53010202001879号 人力资源服务许可证:(云)人服证字(2023)第0102001523号
云南网警备案专用图标
联系电话:0871-65317125(9:00—18:00) 获取招聘考试信息及咨询关注公众号:
咨询QQ:526150442(9:00—18:00)版权所有:
云南网警报警专用图标
Baidu
map