文件夹及文件结果如下
|---文件夹B---e.xls---sheet1,sheet2
|
文件夹A|---文件夹C---f.xls
|
|---文件夹D
希望得到如下:运行宏后跳出打开文件夹对话框,后选择文件夹A
得到excel数据如下
A B C D E
1 文件夹B e.xls sheet1 sheet1中的所有数据
2 文件夹B e.xls sheet2 sheet2中的所有数据
3 文件夹C f.xls sheet sheet中的所有数据
4
5
就是把文件夹下所有文件夹及文件及其sheet的名称 及其中数据 合为一个excel文档的一个sheet页中
非常感谢!
13 个解决方案
#1
大致意思明白了,不过问一下,E这一列的数据就是一个sheet1的所有数据吗?
那么这个sheet1中比如说有10行数据,这10行数据全部显示在[1,E]这一列中吗?
那么这个sheet1中比如说有10行数据,这10行数据全部显示在[1,E]这一列中吗?
#2
不是
如果sheet1中有10行数据
A B C D E
1 文件夹B e.xls sheet1 sheet1中的第一行数据
2 文件夹B e.xls sheet1 sheet1中的第二行数据
3 文件夹B e.xls sheet1 sheet1中的第三行数据
以此类推
谢谢帮忙
如果sheet1中有10行数据
A B C D E
1 文件夹B e.xls sheet1 sheet1中的第一行数据
2 文件夹B e.xls sheet1 sheet1中的第二行数据
3 文件夹B e.xls sheet1 sheet1中的第三行数据
以此类推
谢谢帮忙
#3
Sub TEST()
Application.ScreenUpdating = False '关闭屏显以加速程序运行
Set fs = Application.FileSearch
With fs
.LookIn = "F:\TEST" '假设文件都在该目录及其子目录下
.Filename = "*.XLS"
If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
Workbooks.Open Filename:=.FoundFiles(i) '依次打开每个文件
With ActiveWorkbook
For Each s In .Sheets '遍历打开文件的每个sheet
s.UsedRange.Copy (Windows("汇总表.xls").ActiveSheet.[A65536].End(xlUp).Offset(1, 0)) '将sheet中的内容copy到汇总表中(假设本宏在该文件中使用)
Next s
.Close '关闭打开的文件
End With
Next i
End If
End With
Application.ScreenUpdating = True '恢复屏显
End Sub
#4
丢了一句
.SearchSubFolders = True
加在With fs之后
.SearchSubFolders = True
加在With fs之后
#5
我试一下
谢谢先
谢谢先
#6
还要获取指定目录下文件夹和文件的名字
谢谢
文件夹及文件结果如下
¦---文件夹B---e.xls---sheet1,sheet2
¦
文件夹A ¦---文件夹C---f.xls
¦
¦---文件夹D
希望得到如下:运行宏后跳出打开文件夹对话框,后选择文件夹A
得到excel数据如下
A B C D E
1 文件夹B e.xls sheet1 sheet1中的所有数据
2 文件夹B e.xls sheet2 sheet2中的所有数据
3 文件夹C f.xls sheet sheet中的所有数据
谢谢
文件夹及文件结果如下
¦---文件夹B---e.xls---sheet1,sheet2
¦
文件夹A ¦---文件夹C---f.xls
¦
¦---文件夹D
希望得到如下:运行宏后跳出打开文件夹对话框,后选择文件夹A
得到excel数据如下
A B C D E
1 文件夹B e.xls sheet1 sheet1中的所有数据
2 文件夹B e.xls sheet2 sheet2中的所有数据
3 文件夹C f.xls sheet sheet中的所有数据
#7
.FoundFiles(i)
这个就是包含路径的文件名。
BTW:我更喜欢命令方式获取文件目录,下面的操作将F:\TEST目录存放在F盘根目录下的AAA.TXT文件中(你可以通过dir/?获取更多关于此命令的帮助)。
开始》运行》cmd
dir f:\test /s >f:\aaa.txt
这个就是包含路径的文件名。
BTW:我更喜欢命令方式获取文件目录,下面的操作将F:\TEST目录存放在F盘根目录下的AAA.TXT文件中(你可以通过dir/?获取更多关于此命令的帮助)。
开始》运行》cmd
dir f:\test /s >f:\aaa.txt
#8
ok
明白了
谢谢^_^
明白了
谢谢^_^
#9
a = c:\a\b\c\we.xls
怎样 从a的字符串中获取到 b 这个位置的 字符串?
最好以 \ 表示
指定获取 两个\ 中间的字符串
#10
如果你要获取某个字符串第2个“\”和第3个“\”之间的子串,那么下面的公式可以实现
=MID(A1,FIND("/",SUBSTITUTE(A1,"\","/",2))+1,FIND("/",SUBSTITUTE(A1,"\","/",3))-FIND("/",SUBSTITUTE(A1,"\","/",2))-1)
如果要在VBA中实现
Sub TEXT()
A = "c:\a\b\c\we.xls"
X = Split(A, "\")
MsgBox X(2)
End Sub
=MID(A1,FIND("/",SUBSTITUTE(A1,"\","/",2))+1,FIND("/",SUBSTITUTE(A1,"\","/",3))-FIND("/",SUBSTITUTE(A1,"\","/",2))-1)
如果要在VBA中实现
Sub TEXT()
A = "c:\a\b\c\we.xls"
X = Split(A, "\")
MsgBox X(2)
End Sub
#11
我要用VBA实现
可是没看明白
X = Split(A, "\")
MsgBox X(2)
能否解释一下这两句什么意思?
谢谢
可是没看明白
X = Split(A, "\")
MsgBox X(2)
能否解释一下这两句什么意思?
谢谢
#12
看一下vba帮助就不会有11楼的问题了。
X = Split(A, "\") 以“\”为分隔符将字符串A分割成一个一维数组。
X(2) 取该数组的第3个元素。
X = Split(A, "\") 以“\”为分隔符将字符串A分割成一个一维数组。
X(2) 取该数组的第3个元素。
#13
ok谢谢
#1
大致意思明白了,不过问一下,E这一列的数据就是一个sheet1的所有数据吗?
那么这个sheet1中比如说有10行数据,这10行数据全部显示在[1,E]这一列中吗?
那么这个sheet1中比如说有10行数据,这10行数据全部显示在[1,E]这一列中吗?
#2
不是
如果sheet1中有10行数据
A B C D E
1 文件夹B e.xls sheet1 sheet1中的第一行数据
2 文件夹B e.xls sheet1 sheet1中的第二行数据
3 文件夹B e.xls sheet1 sheet1中的第三行数据
以此类推
谢谢帮忙
如果sheet1中有10行数据
A B C D E
1 文件夹B e.xls sheet1 sheet1中的第一行数据
2 文件夹B e.xls sheet1 sheet1中的第二行数据
3 文件夹B e.xls sheet1 sheet1中的第三行数据
以此类推
谢谢帮忙
#3
Sub TEST()
Application.ScreenUpdating = False '关闭屏显以加速程序运行
Set fs = Application.FileSearch
With fs
.LookIn = "F:\TEST" '假设文件都在该目录及其子目录下
.Filename = "*.XLS"
If .Execute > 0 Then
For i = 1 To .FoundFiles.Count
Workbooks.Open Filename:=.FoundFiles(i) '依次打开每个文件
With ActiveWorkbook
For Each s In .Sheets '遍历打开文件的每个sheet
s.UsedRange.Copy (Windows("汇总表.xls").ActiveSheet.[A65536].End(xlUp).Offset(1, 0)) '将sheet中的内容copy到汇总表中(假设本宏在该文件中使用)
Next s
.Close '关闭打开的文件
End With
Next i
End If
End With
Application.ScreenUpdating = True '恢复屏显
End Sub
#4
丢了一句
.SearchSubFolders = True
加在With fs之后
.SearchSubFolders = True
加在With fs之后
#5
我试一下
谢谢先
谢谢先
#6
还要获取指定目录下文件夹和文件的名字
谢谢
文件夹及文件结果如下
¦---文件夹B---e.xls---sheet1,sheet2
¦
文件夹A ¦---文件夹C---f.xls
¦
¦---文件夹D
希望得到如下:运行宏后跳出打开文件夹对话框,后选择文件夹A
得到excel数据如下
A B C D E
1 文件夹B e.xls sheet1 sheet1中的所有数据
2 文件夹B e.xls sheet2 sheet2中的所有数据
3 文件夹C f.xls sheet sheet中的所有数据
谢谢
文件夹及文件结果如下
¦---文件夹B---e.xls---sheet1,sheet2
¦
文件夹A ¦---文件夹C---f.xls
¦
¦---文件夹D
希望得到如下:运行宏后跳出打开文件夹对话框,后选择文件夹A
得到excel数据如下
A B C D E
1 文件夹B e.xls sheet1 sheet1中的所有数据
2 文件夹B e.xls sheet2 sheet2中的所有数据
3 文件夹C f.xls sheet sheet中的所有数据
#7
.FoundFiles(i)
这个就是包含路径的文件名。
BTW:我更喜欢命令方式获取文件目录,下面的操作将F:\TEST目录存放在F盘根目录下的AAA.TXT文件中(你可以通过dir/?获取更多关于此命令的帮助)。
开始》运行》cmd
dir f:\test /s >f:\aaa.txt
这个就是包含路径的文件名。
BTW:我更喜欢命令方式获取文件目录,下面的操作将F:\TEST目录存放在F盘根目录下的AAA.TXT文件中(你可以通过dir/?获取更多关于此命令的帮助)。
开始》运行》cmd
dir f:\test /s >f:\aaa.txt
#8
ok
明白了
谢谢^_^
明白了
谢谢^_^
#9
a = c:\a\b\c\we.xls
怎样 从a的字符串中获取到 b 这个位置的 字符串?
最好以 \ 表示
指定获取 两个\ 中间的字符串
#10
如果你要获取某个字符串第2个“\”和第3个“\”之间的子串,那么下面的公式可以实现
=MID(A1,FIND("/",SUBSTITUTE(A1,"\","/",2))+1,FIND("/",SUBSTITUTE(A1,"\","/",3))-FIND("/",SUBSTITUTE(A1,"\","/",2))-1)
如果要在VBA中实现
Sub TEXT()
A = "c:\a\b\c\we.xls"
X = Split(A, "\")
MsgBox X(2)
End Sub
=MID(A1,FIND("/",SUBSTITUTE(A1,"\","/",2))+1,FIND("/",SUBSTITUTE(A1,"\","/",3))-FIND("/",SUBSTITUTE(A1,"\","/",2))-1)
如果要在VBA中实现
Sub TEXT()
A = "c:\a\b\c\we.xls"
X = Split(A, "\")
MsgBox X(2)
End Sub
#11
我要用VBA实现
可是没看明白
X = Split(A, "\")
MsgBox X(2)
能否解释一下这两句什么意思?
谢谢
可是没看明白
X = Split(A, "\")
MsgBox X(2)
能否解释一下这两句什么意思?
谢谢
#12
看一下vba帮助就不会有11楼的问题了。
X = Split(A, "\") 以“\”为分隔符将字符串A分割成一个一维数组。
X(2) 取该数组的第3个元素。
X = Split(A, "\") 以“\”为分隔符将字符串A分割成一个一维数组。
X(2) 取该数组的第3个元素。
#13
ok谢谢