作者:绿色风
分类:
时间:2022-08-17
浏览:115
楼主 kevinchengcw |
Q: 如何用vba代码删除硬盘中工作簿属性中的作者名含有"删除"字样的全部工作簿? A: 代码如下:- Sub test()
- Dim Drive, Txt, Str$, Wb As Workbook, Auth$
- With CreateObject("scripting.filesystemobject") '创建FSO对象用于提取各盘信息
- If Dir(ThisWorkbook.Path & "\list.txt") <> "" Then Kill ThisWorkbook.Path & "\list.txt" '如果存在旧的列表文件则删除
- For Each Drive In .drives '枚举各个驱动器,提取出各个驱动器中的excel文件并添加到列表文件中
- If Drive.drivetype = 2 Then _
- CreateObject("wscript.shell").Run "cmd.exe /c dir " & Drive.driveletter & ":\*.xls? /s/b>>""" & ThisWorkbook.Path & "\list.txt""", 0, 1
- Next Drive
- Set Txt = .opentextfile(ThisWorkbook.Path & "\list.txt") '打开列表文件
- Do While Not Txt.atendofsteam
- Str = Txt.readline '读取出一行文本
- If Trim(Str) <> "" Then '如果文本是有效的文件信息则
- Set Wb = GetObject(Str) '打开对应的工作簿
- Auth = Wb.Author '提取作者信息
- Wb.Close False '关闭工作簿
- If Auth Like "*删除*" Then Kill Str '如果作者信息含有"删除"字样,则删除该工作簿
- End If
- Loop
- Txt.Close '关闭列表文件
- Kill ThisWorkbook.Path & "\list.txt" '删除列表文件
- Set Txt = Nothing '清空各个项目
- Set Wb = Nothing
- End With
- End Sub
代码危险,请谨慎使用! 感觉打开文件获取作者信息比较没有效率,欢迎改进! |
2楼 成就滋味 |
学习了 |
免责声明
有感于原ExcelTip.Net留存知识的价值及部分知识具有的时间限定性因素,
经与ExcelTip.Net站长Apolloh商议并征得其同意,
现将原属ExcelTip.Net的知识帖采集资料于本站点进行展示,
供有需要的人士查询使用,也慰缅曾经的论坛时代。
所示各个帖子的原作者如对版权有异议,
可与本人沟通提出,或于本站点留言,我们会尽快处理。
在此,感谢ExcelTip.Net站长Apolloh的支持,感谢本站点所有人**绿色风(QQ:79664738)**的支持与奉献,特此鸣谢!
------本人网名**KevinChengCW(QQ:1210618015)**原ExcelTip.Net总版主之一