Board logo

标题: [问题求助] 菜鸟求解析XLS文件合并的VBS代码 [打印本页]

作者: hnt537    时间: 2015-2-6 15:15     标题: 菜鸟求解析XLS文件合并的VBS代码

本帖最后由 pcl_test 于 2017-6-7 21:24 编辑

求高手!
由于工作中经常需要合并XLS文件,手动太耗时,所以找到这个程序。
目前这个程序能够合并单个表   如果整个XLS文件中有多个分表就不知道要如何改了
例如:有三个格式一样的XLS文件,希望把三个文件的Sheet1、Sheet2、Sheet3 合并到新文件也以Sheet1、Sheet2、Sheet3 的形式呈现。
还有个小小请求以下代码求翻译
  1. x=inputbox("请输入每个文件表头所占的行数:")
  2. Set WshShell = WScript.CreateObject("WScript.Shell")
  3. Set fso = CreateObject("Scripting.FileSystemObject")
  4. set xlsapp = CreateObject("excel.Application")
  5. xlsapp.visible=true
  6. set hb=xlsapp.workbooks.add
  7. hb.saveas(WshShell.CurrentDirectory & "\合并.xls")
  8. Set myfolder = fso.GetFolder(WshShell.CurrentDirectory)
  9. index=1
  10. For Each myfile In myfolder.Files
  11.   if InStr(myfile.name,".xls")<>0 and InStr(myfile.name,"合并.xls")=0 and InStr(myfile.name,"$")=0  then
  12.    set temp=xlsapp.workbooks.open(WshShell.CurrentDirectory & "\" & myfile.name)
  13.    if index=1 then
  14.      temp.Worksheets(1).Rows("1:" & temp.Worksheets(1).UsedRange.Rows.Count).Copy
  15.    else
  16.      temp.Worksheets(1).Rows((x+1) & ":" & temp.Worksheets(1).UsedRange.Rows.Count).Copy
  17.    end if
  18.    hb.Worksheets(1).Rows(index).PasteSpecial
  19.    fnl=Len(myfile.Name)
  20.    For i = index To hb.Worksheets(1).UsedRange.Rows.Count
  21.       hb.Worksheets(1).Cells(i,temp.Worksheets(1).UsedRange.Columns.Count+1).Value = Left(myfile.Name,fnl-4)
  22.    Next
  23.    hb.Save
  24.    index=hb.Worksheets(1).UsedRange.Rows.Count+1
  25.    temp.close
  26.    set temp=Nothing
  27.   end if
  28. next
  29. hb.worksheets(1).columns.autofit
  30. hb.save
  31. hb.close
  32. set hb=nothing
  33. set myfolder=nothing
  34. xlsapp.quit
  35. Set xlsapp= Nothing
  36. Set fso = Nothing
  37. Set wshell = Nothing
  38. MsgBox "OK,请打开合并.xls"
复制代码





欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2