ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
楼主: JXM

[分享] 文件目录管理程序,欢迎大家使用。[下载]

[复制链接]

TA的精华主题

TA的得分主题

发表于 2004-2-17 13:31 | 显示全部楼层
Option Base 1
Option Explicit Dim Fcnt, Rowcnt As Integer
Dim FN(), DN() As String
Dim EN() As Date
Dim lenA As Integer
Dim fs, f, f1, f2, fc As Object
Public Declare Function GetPath Lib "gdi32" (ByVal hdc As Long, lpPoint As POINTAPI, lpTypes As Byte, ByVal nSize As Long) As Long
Public Type POINTAPI
x As Long
y As Long
End Type
'本工程引用以下库文件:
'Visual Basic for Application(VBA)
'MS EXCEL9.0 OBJECT LIABRARY(EXCEL9.0I)
'MS FORMS 2.0 OBJECT LIABRARY(FM20.DLL)
'MS OFFICES 9.0 OBJECT LIABRARY(MSO9.DLL)
'
'






Sub 创建工具栏()

On Error GoTo ERRTEXT
Dim JXMBAR
Dim NewItem


For Each JXMBAR In CommandBars
If JXMBAR.Name = "文件目录工具栏" Then
Application.CommandBars("文件目录工具栏").Delete
End If
Next

Application.CommandBars.Add(Name:="文件目录工具栏").Visible = True
With CommandBars("文件目录工具栏")
.Position = msoBarFloating
End With

Set NewItem = CommandBars("文件目录工具栏").Controls.Add(Type:=msoControlButton)
With NewItem
.BeginGroup = True
.Caption = "生成文件目录管理库"
.FaceId = 66
.OnAction = "生成文件目录"
.Style = msoButtonCaption
End With
Exit Sub
ERRTEXT:
MsgBox Err.Description End Sub
Sub ShowFileList(ByVal folderspec As String)


Dim i, Fcnt, LenArray1 As Integer


' Set fs = CreateObject("Scripting.FileSystemObject")

If fs.FolderExists(folderspec) Then
Set f = fs.GetFolder(folderspec)
Set fc = f.Files

If lenA = 0 Then
LenArray1 = 0
Else
LenArray1 = UBound(FN)
End If

Fcnt = fc.Count

If Fcnt > 0 Then
lenA = 1
End If

ReDim Preserve FN(LenArray1 + Fcnt)
ReDim Preserve DN(LenArray1 + Fcnt)
ReDim Preserve EN(LenArray1 + Fcnt)

i = 1
For Each f1 In fc
FN(LenArray1 + i) = f1.Name
DN(LenArray1 + i) = fs.GetParentFolderName(f1)
EN(LenArray1 + i) = VBA.Format(f1.datecreated, "yyyy-mm-dd")
i = i + 1
Next


Set fc = f.SubFolders
For Each f2 In fc
Call ShowFileList(f2)
Next
End If
End Sub
Sub 生成文件目录() Dim PADir, Drv As String
Dim i As Integer On Error GoTo ERRTEXT

Set fs = CreateObject("Scripting.FileSystemObject")



PADir = fs.GetParentFolderName(SelFileN)

Workbooks.Add

ActiveWorkbook.SaveAs FileName:=SaveXlFile, _
FileFormat:=xlNormal, Password:="", WriteResPassword:="", _
ReadOnlyRecommended:=False, CreateBackup:=False
ActiveWindow.WindowState = xlMaximized


ActiveSheet.Range("a1").Select

Range("a1").Value = "文件路径"
Range("b1").Value = "文件名"
Range("c1").Value = "文件创建时间"
Range("d1").Value = "文件最后修改时间"

Rowcnt = 1
Drv = VBA.Left(PADir, 1)
ChDrive Drv
lenA = 0


Call ShowFileList(PADir)

Rowcnt = UBound(FN)
For i = 1 To Rowcnt

Cells(i + 1, 1) = DN(i)
ActiveSheet.Hyperlinks.Add Anchor:=ActiveSheet.Cells(i + 1, 2), Address:= _
DN(i) & "\" & FN(i), TextToDisplay:=FN(i)

Cells(i + 1, 3) = VBA.Format(FileDateTime(DN(i) & "\" & FN(i)), "yyyy-mm-dd")
Cells(i + 1, 4) = EN(i)

Next i


Range("a1").CurrentRegion.Select
With Selection
.Font.FontStyle = "宋体"
.Font.Size = "9"
End With
Columns("a:a").ColumnWidth = 25
Columns("b:b").ColumnWidth = 45
Columns("c:c").ColumnWidth = 12
Columns("d:d").ColumnWidth = 12

Range("a1").Select

Exit Sub
ERRTEXT:
MsgBox Err.Description End Sub Function SaveXlFile()
Dim FileSaveN FileSaveN = Application.GetSaveAsFilename( _
fileFilter:="Excel Files (*.xls), *.xls")
If FileSaveN <> False Then
If dir(FileSaveN) <> "" Then
MsgBox "不能与现有文件重名,本程序不支持覆盖"
End
Else
SaveXlFile = FileSaveN

End If
Else
MsgBox "你放弃保存文件,即是退出程序"
End
End If End Function Function SelFileN()
Dim FileToOpen
FileToOpen = Application _
.GetOpenFilename("all Files (*.*), *.*", , "请选取待选目录中任意一个文件(不要选取目录),以便程序取得该文件的父目录", , False) If FileToOpen <> False Then SelFileN = FileToOpen Else
MsgBox "你放弃了选择目录!程序将退出"
End
End If End Function

TA的精华主题

TA的得分主题

发表于 2004-2-17 13:32 | 显示全部楼层
工程密码:31HH

TA的精华主题

TA的得分主题

发表于 2004-2-18 15:47 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
好,谢谢!

TA的精华主题

TA的得分主题

发表于 2004-2-18 16:11 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2008-10-21 16:57 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2008-10-21 17:13 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
收下了,好东东,谢谢楼主!

TA的精华主题

TA的得分主题

发表于 2004-2-5 13:13 | 显示全部楼层
哈哈!现在才发现这个好东东,代码取到了,要多谢ldhyob呢。

TA的精华主题

TA的得分主题

发表于 2002-10-31 21:38 | 显示全部楼层
謝謝!辛苦了,送你一個精華。

TA的精华主题

TA的得分主题

发表于 2008-11-11 15:05 | 显示全部楼层
怎么看不到附件,难道要回复?

TA的精华主题

TA的得分主题

发表于 2008-11-11 15:19 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
是呀,我也没看到,回复看看
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2024-10-5 02:35 , Processed in 0.036377 second(s), 6 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

快速回复 返回顶部 返回列表