以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]如何将一个文件夹中的所有EXCEL合并或导入到一个表中  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=92196)

--  作者:ybmjy
--  发布时间:2016/10/28 14:02:00
--  [求助]如何将一个文件夹中的所有EXCEL合并或导入到一个表中
如题,要合并或导入的表结构都相同,怎么写代码。有30个单位,名称都不一样。
[此贴子已经被作者于2016/10/28 14:05:57编辑过]

--  作者:ybmjy
--  发布时间:2016/10/28 14:23:00
--  
顶一下


--  作者:18523982317
--  发布时间:2016/10/28 14:30:00
--  
表结构和导入的表结构一样的话。。。用个for  next就可以了啊    帮助里给出的导入是默认为 Book.Sheets(0),就是第一个工作表,你要导入整个工作簿,前面加个循环就行了。。。 

for i as 。。。。
Book.Sheets(i)
next



--  作者:ybmjy
--  发布时间:2016/10/28 14:34:00
--  
都是第一个工作表,只是文件夹中有30个各单位报上来的,不晓得怎么写代码了


--  作者:ybmjy
--  发布时间:2016/10/28 14:37:00
--  
30个单位报上来的EXCEL的名字不一样,想的是全部导入到一个工作表


--  作者:18523982317
--  发布时间:2016/10/28 14:38:00
--  
以下是引用ybmjy在2016/10/28 14:34:00的发言:
都是第一个工作表,只是文件夹中有30个各单位报上来的,不晓得怎么写代码了
额   我理解错了,但是方法也有,如果30个表,那么把表名做成个数组,然后把依次读数组的值,把路径和数组的值合并,就是你要导入的表,后面导入的代码都可以在帮助里找得到
想要简单点,就把表名设成1 2 3......
然后for  next  就可以了。
至于如何读取路径,帮助里的代码变一下就可以了


--  作者:18523982317
--  发布时间:2016/10/28 14:39:00
--  
我好像记得帮助里还有代码 可以改成读取文件夹内,所有文件的名字。。。读取出来放一个数组里。。。。
--  作者:ybmjy
--  发布时间:2016/10/28 14:41:00
--  
一下子蒙起了,不晓得咋个变通了图片点击可在新窗口打开查看
--  作者:18523982317
--  发布时间:2016/10/28 14:44:00
--  
http://www.foxtable.com/webhelp/
找到了
GetFiles,返回该目录下的所有文件名,然后for next 这个集合,然后在加上路径,然后再导入。。。

--  作者:ybmjy
--  发布时间:2016/10/28 14:52:00
--  
那是不是这种写法
For Each File As String In FileSys.GetFiles("C:\\")
  Dim mg As New Merger
mg.SourcePath = file
mg.Format = "excel" \'指定格式
mg.SourceTableName = "订单" \'指定要合并的表
mg.DataTableName = "订单" \'指定接收数据的表
mg.Merge() \'开始合并
Next