Excel使用Vba读取文件夹下所有文件_第1页
Excel使用Vba读取文件夹下所有文件_第2页
Excel使用Vba读取文件夹下所有文件_第3页
Excel使用Vba读取文件夹下所有文件_第4页
Excel使用Vba读取文件夹下所有文件_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

最近使用VBA编程,要用到一个功能,使得Excel能够读取指定文件夹下的所有文件名称。使用的是Excel2010版本,但是在Excel2003版本中能够使用的FileSearch在Excel2010版中会出错,因此不得不另找其它方法,下面介绍三种方法,在Excel单元格中显示特定目录下的文件名称(文件大小,日期时间等),也可以自行修改符合自己的使用要求。在Excel2010和Excel2003版本中均测试过可行。我工作中使用繁体,第三种方法使用的是繁体,所以在简体系统下会乱码,这个不会妨碍程序运行,gongxi1是我设置的一个窗体,可忽略。第三种不仅仅能导入特定文件下的所有文件,也可以导入文件夹下的文件夹文件。第一种:Subtestit()DimkAsVariantDimmAsVariantm=1

myvar=FileList("C:\Users\ownding\SkyDrive\文档\工作事項")

Fori=LBound(myvar)ToUBound(myvar)

Debug.Printmyvar(i)

Next

ForEachkInmyvar

Sheets("sheet1").Cells(m,1)=k

m=m+1

Nextk

EndSubFunctionFileList(fldrAsString,OptionalfltrAsString="*.*")AsVariant

DimsTempAsString,sHldrAsString

IfRight$(fldr,1)<>""Thenfldr=fldr&""

sTemp=Dir(fldr&fltr)

IfsTemp=""Then

FileList=Split("Nofilesfound","|")'确保返回数组

ExitFunction

EndIf

Do

sHldr=Dir

IfsHldr=""ThenExitDo

sTemp=sTemp&"|"&sHldr

Loop

FileList=Split(sTemp,"|")EndFunction-----------------------------------------------------------------------------第二种:OptionExplicitSubListFiles()

DimDirectoryAsString

DimrAsLong

DimfAsString

DimFileSizeAsDouble

WithApplication.FileDialog(msoFileDialogFolderPicker)

.InitialFileName=Application.DefaultFilePath&""

.Title="Selectalocationcontainingthefilesyouwanttolist."

.Show

If.SelectedItems.Count=0Then

ExitSub

Else

Directory=.SelectedItems(1)&""

EndIf

EndWith

r=1'

插入表头

Cells.ClearContents

Cells(r,1)="Filesin"&Directory

Cells(r,2)="Size"

Cells(r,3)="Date/Time"

Range("A1:C1").Font.Bold=True

'

获得第一个文件

f=Dir(Directory,vbReadOnly+vbHidden+vbSystem)

DoWhilef<>""

r=r+1

Cells(r,1)=f

DoWhileLen(Filename)<>0

IfLeft(Filename,1)<>"."Then'讽玡dir

PathAndName=CurrDir&Filename

If(GetAttr(PathAndName)AndvbDirectory)=vbDirectoryThen

'纗т隔畖

ReDimPreserveDirs(0ToNumDirs)AsString

Dirs(NumDirs)=PathAndName

NumDirs=NumDirs+1

Else

'盢隔畖㎝嘿糶

Cells(WorksheetFunction.CountA(Range("A:A"))+2,1)=CurrDir

Cells(WorksheetFunction.CountA(Range("B:B"))+2,2)=Filename

'秸俱ゅン

Filesize=FileLen(PathAndName)

IfFilesize<0ThenFilesize=Filesize+4294967296#

Cells(WorksheetFunction.CountA(Range("C:C"))+2,3)=Filesize

Cells(WorksheetFunction.CountA(Range("D:D"))+2,4)=FileDateTime(PathAndName)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论