配色: 字号:
在VBA中怎样判断文件夹是否存在?
2014-02-26 | 阅:  转:  |  分享 
  
如何用VBA判断文件夹是否存在?

如何实现:1、判断??日计划??文件夹是否存在,如果不存在,则自动生成2、判断??周评审??文件夹是否存在,如果存在,则自动删除文件的路径:e:\定单计划\月度定单\日计划??请各位老师指导!

最简单是dir,如果为空,则不存在ifdir("e:\定单计划\月度定单\日计划",16)=emptythen??msgobx??"文件夹不存在"endif

MkDirsPath创建文件夹Name??as??剪切文件ifdir("e:\定单计划\月度定单\日计划\")=""thenMkDIr"e:\定单计划\月度定单\日计划\"

Kill"e:\新建文件夹\."kill不能删除子目录RmDirpath??删除一个存在的目录或文件夹。SubDel()??DimFso,Fld??SetFso=CreateObject("Scripting.FileSystemObject")??SetFld=Fso.getfolder("E:\新建文件夹\")??Fld.DeleteEndSub需要注意:如果你所打开的工作簿也在要删除的文件夹里,需要更改为只读属性,做自杀处理。PrivateSubWorkbook_Open()??DimFso,Fld,Fd,F??SetFso=CreateObject("Scripting.FileSystemObject")??SetFld=Fso.getfolder(ThisWorkbook.Path&"\")????ForEachFdInFld.subfolders??????Fd.Delete??Next????ForEachFInFld.Files??????IfF.Name<>ThisWorkbook.NameThenF.Delete??NextEndSub







―――――――――――――――――――――

OptionExplicit



Sub生成文件夹()

DimwjjAsObject

DimMbookAsWorkbook

DimwjjNameAsString

OnErrorResumeNext

Application.ScreenUpdating=False



Setwjj=CreateObject("Scripting.FileSystemObject")

wjjName="张爱军"



''在C盘建立“张爱军”的文件夹

MkDirThisWorkbook.Path&"\"&wjjName

Setwjj=Nothing



''在C盘\“张爱军”文件夹中生成“张爱军.xls”工作簿文件

SetMbook=Workbooks.Add

Mbook.SaveAsFilename:=ThisWorkbook.Path&"\"&wjjName&"\"&wjjName&".xls"



ActiveWindow.CloseTrue''关闭“张爱军.xls”工作簿



Application.ScreenUpdating=True

EndSub





Sub删除文件夹()

DimwjjAsObject

DimwjjNameAsString

OnErrorResumeNext

Application.ScreenUpdating=False



Setwjj=CreateObject("Scripting.FileSystemObject")

wjjName="张爱军"



''在C盘查找“张爱军”的文件夹(没有的则跳过,已经有的删除)

Ifwjj.folderExists(ThisWorkbook.Path&"\"&wjjName)=TrueThen

wjj.deletefolderThisWorkbook.Path&"\"&wjjName''(注:不管文件夹内是否有子文件夹或者其它文件,一律直接删除)

EndIf

Setwjj=Nothing



Application.ScreenUpdating=True

EndSub



''注:

''以上文件都在C盘内生成,但通常采用本程序目录下生成相关文件夹\文件,有利于查找,因此可以用下面的语句替代"C:\"&...

''ThisWorkbook.Path&"\"&...















































献花(0)
+1
(本文系yyyydddd888...首藏)