❶ excel遍历本文件夹改成遍历本文件夹及所有子文件夹
代码太长,希望你理解我下面的方法,先看看你的代码结构:
mypath=ThisWorkbook.Path&""
myname=Dir(mypath&"*.xl*")
DoWhilemyname<>""
'......
myname=Dir()
Loop
修改为下面的结构:
mypath=ThisWorkbook.Path&""
Shell"cmd.exe/cdir"&mypath&"*.xls?/b/s>c:1.txt"
WithWorkbooks.Open("c:1.txt")
arr=ActiveSheet.UsedRange
.Close
EndWith
ForEachmynameInarr
'......
Next
哦,还有一点,我的代码循环里面的myname是带了完整路径的。
❷ Excel 请问如何遍历同一个文件夹查找
vba可以实现的,
http://club.excelhome.net/thread-1258425-1-1.html
这里有资料供参考
❸ 如何用vba遍历文件夹里面的子文件并且复制指定数据形成一张新的表格,ps:子文件的数据格式一直
尝试用下边代码试试:
Sub OpenAndClose()
Dim MyFile As String
Dim s As String
Dim count As Integer
MyFile = Dir(文件夹目录 & "*.xlsx")
'读入文件夹中的第一个.xlsx文件
count = count + 1 '记录文件的个数
s = s & count & "、" & MyFile
Do While MyFile <> ""
MyFile = Dir '第二次读入的时候不用写参数
If MyFile = "" Then
Exit Do '当MyFile为空的时候就说明已经遍历完了,这时退出Do,否则还要运行一遍
End If
count = count + 1
If count Mod 2 <> 1 Then
s = s & vbTab & count & "、" & MyFile
Else
s = s & vbCrLf & count & "、" & MyFile
End If
Loop
Debug.Print s
End Sub
另外,可以考虑用python试试
❹ 遍历一个文件夹内的所有EXCEL工作簿,找出同名的例如每个工作簿中Sheet2这张工作表全部打印出来的VBA。
修改为:
Subprt()
DimwsAsWorkbook,path$,d$
Application.ScreenUpdating=False
path=ThisWorkbook.path&""
d=Dir(path&"*.xls")
DoWhiled<>""
Ifd<>ThisWorkbook.NameThen
Setws=Workbooks.Open(path&d)
ws.Sheets("sheet2").PrintOut
ws.CloseFalse
EndIf
d=Dir
Loop
Application.ScreenUpdating=True
EndSub
❺ Excel 请问如何遍历同一个文件夹内的Excel查找相关的内容
请参考:
Private Sub Worksheet_Change(ByVal Target As Range)
If Target.Address(0, 0) <> "B1" Then Exit Sub
If Target = "" Then Exit Sub
Dim Fso As Object, File As Object, cnn As Object, rs As Object, rst As Object, SQL$, s$, m&, arr, brr(1 To 1000, 1 To 3), t$
t = "" & Target
Set Fso = CreateObject("Scripting.FileSystemObject")
Set cnn = CreateObject("adodb.connection")
For Each File In Fso.GetFolder(ThisWorkbook.Path).Files
If File.Name Like "*.xls*" And InStr(File.Name, ThisWorkbook.Name) = 0 Then
Set cnn = CreateObject("adodb.connection")
cnn.Open "Provider=Microsoft.Ace.OLEDB.12.0;Extended Properties=excel 12.0;Data Source=" & File
Set rs = cnn.OpenSchema(20)
Do Until rs.EOF
If rs.Fields("TABLE_TYPE") = "TABLE" Then
s = Replace(rs("TABLE_NAME").Value, "'", "")
If Right(s, 1) = "$" Then
SQL = "select * from [" & s & "] where 路径 like '%" & t & "'"
Set rst = cnn.Execute(SQL)
If Not rst.EOF Then
m = m + 1
brr(m, 1) = Right$(Split(File.Name, ".")(0), 2) & "月" & Replace(s, "$", "")
brr(m, 2) = rst.Fields(0)
brr(m, 3) = rst.Fields(1)
End If
End If
End If
rs.MoveNext
Loop
End If
Next
ActiveSheet.UsedRange.Offset(2).ClearContents
If m > 0 Then Range("A3").Resize(m, 3) = brr
rs.Close
rst.Close
cnn.Close
Set rs = Nothing
Set rst = Nothing
Set cnn = Nothing
Set Fso = Nothing
End Sub
❻ Excel 如何遍历一个文件夹下的所有文件并得到文件名
如要提取“我的文档”下所有文件名,先定义一个名称,如Files
=FILES("C:\Users\用户名\Documents\"&"*.*")
然后比如A列是序号,B列是文件名,就在B2中输入公式:
=HYPERLINK("C:\Users\用户名\Documents\"&INDEX(Files,ROW(A1)),INDEX(Files,ROW(A1)))
下拉
❼ 大神《同一文件夹使用VBA遍历所有excel表格并引用数据》 能否提供下实现的方法和步骤 教育用 感谢
用dir 和do loop 遍历同一文件夹下的excel文件,在for next 循环中open 打开excel文件,for each next 循环工作簿中的工作表, usedrange.select 选择使用区域,selection. 复制,activesheet.paste粘贴。
❽ 如何用python遍历文件夹下的所有excel文件
大数据处理经常要用到一堆表格,然后需要把数据导入一个list中进行各种算法分析,简单讲一下自己的做法:
1.如何读取excel文件
网上的版本很多,在xlrd模块基础上,找到一些源码:
[python]view plain
importxdrlib,sys
importxlrd
defopen_excel(file="C:/Users/flyminer/Desktop/新建MicrosoftExcel工作表.xlsx"):
data=xlrd.open_workbook(file)
returndata
#根据索引获取Excel表格中的数据参数:file:Excel文件路径colnameindex:表头列名所在行的所以,by_index:表的索引
defexcel_table_byindex(file="C:/Users/flyminer/Desktop/新建MicrosoftExcel工作表.xlsx",colnameindex=0,by_index=0):
data=open_excel(file)
table=data.sheets()[by_index]
nrows=table.nrows#行数
ncols=table.ncols#列数
colnames=table.row_values(colnameindex)#某一行数据
list=[]
forrownuminrange(1,nrows):
row=table.row_values(rownum)
ifrow:
app={}
foriinrange(len(colnames)):
app[colnames[i]]=row[i]
list.append(app)
returnlist
#根据名称获取Excel表格中的数据参数:file:Excel文件路径colnameindex:表头列名所在行的所以,by_name:Sheet1名称
defexcel_table_byname(file="C:/Users/flyminer/Desktop/新建MicrosoftExcel工作表.xlsx",colnameindex=0,by_name=u'Sheet1'):
data=open_excel(file)
table=data.sheet_by_name(by_name)
nrows=table.nrows#行数
colnames=table.row_values(colnameindex)#某一行数据
list=[]
forrownuminrange(1,nrows):
row=table.row_values(rownum)
ifrow:
app={}
foriinrange(len(colnames)):
app[colnames[i]]=row[i]
list.append(app)
returnlist
defmain():
tables=excel_table_byindex()
forrowintables:
print(row)
tables=excel_table_byname()
forrowintables:
print(row)
if__name__=="__main__":
main()
最后一句让代码里的函数都可以被复用,简单地说:假设文件名是a,在程序中import a以后,就可以用a.excel_table_byname()和a.excel_table_byindex()这两个超级好用的函数了。
2.然后是遍历文件夹取得excel文件以及路径:,原创代码如下:
[python]view plain
importos
importxlrd
importtest_wy
xpath="E:/唐伟捷/电力/电力系统总文件夹/舟山电力"
xtype="xlsx"
typedata=[]
name=[]
raw_data=[]
file_path=[]
defcollect_xls(list_collect,type1):
#取得列表中所有的type文件
foreach_elementinlist_collect:
ifisinstance(each_element,list):
collect_xls(each_element,type1)
elifeach_element.endswith(type1):
typedata.insert(0,each_element)
returntypedata
#读取所有文件夹中的xls文件
defread_xls(path,type2):
#遍历路径文件夹
forfileinos.walk(path):
foreach_listinfile[2]:
file_path=file[0]+"/"+each_list
#os.walk()函数返回三个参数:路径,子文件夹,路径下的文件,利用字符串拼接file[0]和file[2]得到文件的路径
name.insert(0,file_path)
all_xls=collect_xls(name,type2)
#遍历所有type文件路径并读取数据
forevey_nameinall_xls:
xls_data=xlrd.open_workbook(evey_name)
foreach_sheetinxls_data.sheets():
sheet_data=test_wy.excel_table_byname(evey_name,0,each_sheet.name)
#请参考读取excel文件的代码
raw_data.insert(0,sheet_data)
print(each_sheet.name,":Datahasbeendone.")
returnraw_data
a=read_xls(xpath,xtype)
print("Victory")
❾ EXCEL VBA 遍历所有文件夹和子文件夹的文件中指定单元格中的数据,汇总到一张工作表中,
把需要遍历的所有路径,写到一个excel表里不就行了,每次从这个表里调用路径去遍历。或者dir /b /s *.xls*>d:\1.txt,把这个1.txt内容读入表或数组,遍历这个就行了。