关于vb与excel的问题
程序的要求是将路径为"e:\data\xxxx_1;xxxx_2....\xxxx_1_A.xls;xxxx_1_B.xls;xxxx_1_C.xls;xxxx_2_A.xls ... 中的所有excel电子表格复制到指定的excel工作簿的工作表中 上面的xxxx是数字 需要由文本框输入 至于xxxx_1_A.xls;xxxx_1_B.xls;xxxx_1_C.xls后面的A,B,C是同一编号下不同类型的三种数据
具体的说就是无法确定data文件夹下有多少xxxx_1和xxxx_2个文件夹(编号需要测试时才能知道,测试一个产品时就需要建立xxxx_1 xxxx_2两个文件夹 以及下面的三种类型的电子表格) 例如需要将xxxx_1文件夹下的xxxx_1_A.xls;xxxx_1_B.xls;xxxx_1_C.xls 中的指定单元格(比如为range("A1,B2"))分别复制到名称为xxxx_1_A;xxxx_1_B;xxxx_1_C工作表中(假设复制到每个工作表的位置也为range("A1,B2"))并保存为xxxx_1的工作簿 现在需要对data下所有的电子表格进行如上处理 哪位高手知道怎么实现那 说的可能很混乱 但也确实是这样 我只能实现输入具体xxxx 再将相应的数据做这样处理 但是如何批量实现那 通过点击一个按钮 将此过程全部完成??
[解决办法]
请参考
'取得该目录下的所有excel文件(包括子目录)Sub getFolder(strPath As String)Dim fileCount As IntegerDim subPath As String'目录列表Dim folderList(1000) As String'目录列表下标Dim folderCount As IntegerDim fileList(1000) As StringfolderCount = 0Dim i As Long'取得目录和文件信息subPath = Dir(strPath & "\", vbDirectory)Do While subPath <> "" '除去上层目录 If subPath <> "." And subPath <> ".." Then '如果是目录就加入目录列表 If GetAttr(strPath & "\" & subPath) = vbDirectory Then folderList(folderCount) = strPath & "\" & subPath Debug.Print folderList(folderCount) folderCount = folderCount + 1 '如果是excel文件就加入文件列表 ElseIf InStr(Right(subPath, 4), "xls") > 0 Then fileList(fileCount) = strPath & "\" & subPath Debug.Print fileList(fileCount) fileCount = fileCount + 1 End If End If '取下一个目录或文件 subPath = DirLoop'如果该目录下还有子目录If folderCount > 0 Then For i = 0 To folderCount - 1 getFolder (folderList(i)) Next iEnd IfEnd Sub