批量取消excel工作簿的保护

批量取消excel工作簿的保护,excel,passwords,Excel,Passwords,我在同一个文件夹中有100多个excel工作簿,它们都使用相同的密码进行保护。正在寻找批量取消保护这些工作簿的方法 我发现的一个潜在解决方案是使用vbs代码作为复制和保存工作簿的变通方法,但我不确定如何将此代码应用于文件夹中的所有文件 Set objExcel = CreateObject("Excel.Application") ' objExcel.Visible = TRUE objExcel.DisplayAlerts = FALSE ' Path1="C:\Users\xxxx\Tes

我在同一个文件夹中有100多个excel工作簿,它们都使用相同的密码进行保护。正在寻找批量取消保护这些工作簿的方法

我发现的一个潜在解决方案是使用vbs代码作为复制和保存工作簿的变通方法,但我不确定如何将此代码应用于文件夹中的所有文件

Set objExcel = CreateObject("Excel.Application")
'
objExcel.Visible = TRUE
objExcel.DisplayAlerts = FALSE
'
Path1="C:\Users\xxxx\Test\Amazing Pty Ltd PW.xls"
Path2="C:\Users\xxxx\TestCopy\Amazing Pty Ltd PW no.xls"
'
Set objWorkbook = objExcel.Workbooks.Open(Path1,,,," ")
'
objWorkbook.Unprotect("password")
objWorkbook.SaveAs Path2
'
objExcel.Quit

谢谢你的帮助

这里是一个经过测试的脚本,它通过循环“Test”目录中的文件,将代码应用于每个文件

'Loop through files in a directory using Filesystemobject
Set objFSO = CreateObject("Scripting.FileSystemObject")

'Set as the directory containing your files
objStartFolder = "C:\Users\xxxx\Test\"

'Set as save to directory 
objSaveToFolder = "C:\Users\xxxx\TestCopy\"

Set objFolder = objFSO.GetFolder(objStartFolder)
Set colFiles = objFolder.Files

Set objExcel = CreateObject("Excel.Application")
objExcel.Visible = TRUE
objExcel.DisplayAlerts = FALSE

For Each objFile in colFiles
'Open the file with it full path name
Set objWorkbook = objExcel.Workbooks.Open(objFSO.GetAbsolutePathName(objFile),false,false)
objWorkbook.Unprotect("password")
objWorkbook.SaveAs objSaveToFolder & objFile.name
Next

objExcel.Quit