如何查找电脑里面所有密码的Excel文件
各位高手,我们公司有一个公共盘,里面不能有存在有密码的文件,现在里面有很多,可以文件很多不好找,如何可以用什么方法可以找出所有加了密码的文件。谢谢!!在线等··急!!!!...
各位高手,我们公司有一个公共盘,里面不能有存在有密码的文件,现在里面有很多,可以文件很多不好找,如何可以用什么方法可以找出所有加了密码的文件。谢谢!!在线等··急!!!!
展开
3个回答
展开全部
请尝试如下步骤:
1、在Excel里面随便新建一个工作簿;
2、键入Alt+F11,打开VBA编辑环境,执行菜单命令“插入-模块”;
3、在代码编辑区里面粘贴如下代码:
Option Explicit
Const g_strRootPath = "c:\Temp\docs\Excel\" ' 存放所有文件的目录,可以有子目录
Dim g_nRowIndex As Integer
Sub CheckPasswordProtected()
On Error Resume Next
Dim fso, oFolder
Cells.Clear
Cells(1, 1) = "带有密码保护的文件"
Cells(1, 1).Font.Bold = 1
g_nRowIndex = 2
Set fso = CreateObject("Scripting.FileSystemObject")
Set oFolder = fso.GetFolder(g_strRootPath)
CheckPasswordProtectedUnderFolder fso, oFolder
Columns("A:A").EntireColumn.AutoFit
Columns("A:A").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
End Sub
Sub CheckPasswordProtectedUnderFolder(fso, oFolder)
Dim oSubFolder, oFile
Dim strExt As String
For Each oSubFolder In oFolder.SubFolders
CheckPasswordProtectedUnderFolder fso, oSubFolder
Next
For Each oFile In oFolder.Files
strExt = LCase(fso.GetExtensionName(oFile.Path))
If (strExt = "xls") Or (strExt = "xlsx") Then
If IsFilePasswordProtected(oFile.Path) Then
ActiveSheet.Cells(g_nRowIndex, 1) = oFile.Path
g_nRowIndex = g_nRowIndex + 1
End If
End If
Next
End Sub
Function IsFilePasswordProtected(strFileName As String) As Boolean
On Error Resume Next
Dim oWorkbook As Workbook
Set oWorkbook = Workbooks.Open(Filename:=strFileName, Password:="")
If oWorkbook Is Nothing Then
IsFilePasswordProtected = True
Exit Function
Else
oWorkbook.Close
IsFilePasswordProtected = False
End If
End Function
4、修改代码中的那个g_strRootPath参数,设置为存放所有Excel文件的根目录;
5、键入F5运行,直到提示“完成!”;
6、键入Alt+Q返回Excel主窗口,可以看到当前工作表的第一列里面列举出了在指定目录下所有加了密的文件完整路径。
请注意,这里所能检测到的为Excel文件设置的加密,只能是通过菜单“工具-选项-安全性”设置的“打开权限密码”这种形式的加密。其它形式的加密这个方法不适用。如果需要判断其它形式加密(比如通过菜单“工具-保护”),请补充提问或和我联系。
1、在Excel里面随便新建一个工作簿;
2、键入Alt+F11,打开VBA编辑环境,执行菜单命令“插入-模块”;
3、在代码编辑区里面粘贴如下代码:
Option Explicit
Const g_strRootPath = "c:\Temp\docs\Excel\" ' 存放所有文件的目录,可以有子目录
Dim g_nRowIndex As Integer
Sub CheckPasswordProtected()
On Error Resume Next
Dim fso, oFolder
Cells.Clear
Cells(1, 1) = "带有密码保护的文件"
Cells(1, 1).Font.Bold = 1
g_nRowIndex = 2
Set fso = CreateObject("Scripting.FileSystemObject")
Set oFolder = fso.GetFolder(g_strRootPath)
CheckPasswordProtectedUnderFolder fso, oFolder
Columns("A:A").EntireColumn.AutoFit
Columns("A:A").Sort Key1:=Range("A2"), Order1:=xlAscending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod _
:=xlPinYin, DataOption1:=xlSortNormal
End Sub
Sub CheckPasswordProtectedUnderFolder(fso, oFolder)
Dim oSubFolder, oFile
Dim strExt As String
For Each oSubFolder In oFolder.SubFolders
CheckPasswordProtectedUnderFolder fso, oSubFolder
Next
For Each oFile In oFolder.Files
strExt = LCase(fso.GetExtensionName(oFile.Path))
If (strExt = "xls") Or (strExt = "xlsx") Then
If IsFilePasswordProtected(oFile.Path) Then
ActiveSheet.Cells(g_nRowIndex, 1) = oFile.Path
g_nRowIndex = g_nRowIndex + 1
End If
End If
Next
End Sub
Function IsFilePasswordProtected(strFileName As String) As Boolean
On Error Resume Next
Dim oWorkbook As Workbook
Set oWorkbook = Workbooks.Open(Filename:=strFileName, Password:="")
If oWorkbook Is Nothing Then
IsFilePasswordProtected = True
Exit Function
Else
oWorkbook.Close
IsFilePasswordProtected = False
End If
End Function
4、修改代码中的那个g_strRootPath参数,设置为存放所有Excel文件的根目录;
5、键入F5运行,直到提示“完成!”;
6、键入Alt+Q返回Excel主窗口,可以看到当前工作表的第一列里面列举出了在指定目录下所有加了密的文件完整路径。
请注意,这里所能检测到的为Excel文件设置的加密,只能是通过菜单“工具-选项-安全性”设置的“打开权限密码”这种形式的加密。其它形式的加密这个方法不适用。如果需要判断其它形式加密(比如通过菜单“工具-保护”),请补充提问或和我联系。
展开全部
现在没有方法,查找已经加密的EXCEL文件
你可以在搜索里面输入文件名的地方输入*.xls
查找所有的EXCEL文件
然后一个一个打开看是否加密
没有别的更好的方法
你可以在搜索里面输入文件名的地方输入*.xls
查找所有的EXCEL文件
然后一个一个打开看是否加密
没有别的更好的方法
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询