Se sai qual è la password, vai avanti e apri il documento Excel. Quindi fare clic su File> Salva con nome. A sinistra del pulsante Salva è presente un piccolo menu a discesa con l'etichetta Strumenti. Fare clic su quello, quindi fare clic su Opzioni generali. Elimina qui le voci della password e fai clic su OK. Salva il documento.
Se non si conosce la password, è possibile utilizzare VBA per trovarla. Se dovessi provare a indovinare, il tuo utente probabilmente non ha usato una password super forte, quindi potremmo usare un metodo di tipo di forza bruta per trovarlo. Il codice seguente è approssimativo, ma mi ha aiutato a trovare una password debole e persa su molti documenti dei miei utenti. Controlla le password di qualsiasi lunghezza con i caratteri ASCII da 1 a z. Lo chiameresti dalla finestra immediata e aspetteresti alcuni minuti in questo modo:
? GetPassword("D:\mywkbk.xlsx")
-
Public Function GetPassword(ByRef sFileName As String) As String
On Error Resume Next
Dim pw As String
pw = ""
Do
VBA.Err.Clear
pw = GenerateNextPassword(pw)
Application.Workbooks.Open sFileName, False, True, , pw, pw
VBA.DoEvents
Loop While VBA.Err.Number = 5408
GetPassword = pw
End Function
Public Function GenerateNextPassword(ByRef sCurrentPassword As String) As String
Const MAX_CHAR = 122
Const MIN_CHAR = 49
Dim sCurrentPasswordMax As String
Dim sNewPassword As String
Dim i As Long
sCurrentPasswordMax = String(Len(sCurrentPassword), Chr(MAX_CHAR))
If sCurrentPassword = sCurrentPasswordMax Then
'do an increment that changes the length
sNewPassword = String(Len(sCurrentPassword) + 1, Chr(MIN_CHAR))
Debug.Print Now(); ": "; sNewPassword
ElseIf Asc(Right(sCurrentPassword, 1)) = MAX_CHAR Then
'do an increment that changes multiple characters
sNewPassword = Left(sCurrentPassword, Len(sCurrentPassword) - 1) & Chr(MIN_CHAR)
For i = Len(sCurrentPassword) - 1 To 1 Step -1
sNewPassword = Left(sNewPassword, i - 1) & Chr(Asc(Mid(sNewPassword, i, 1)) + 1) & Mid(sNewPassword, i + 1)
If Asc(Mid(sCurrentPassword, i, 1)) <> MAX_CHAR Then
Exit For
End If
Next i
Else
'do an increment on the rightmost character
sNewPassword = Left(sCurrentPassword, Len(sCurrentPassword) - 1) & Chr(Asc(Right(sCurrentPassword, 1)) + 1)
End If
GenerateNextPassword = sNewPassword
End Function
decrypt xls
o qualcosa di simile.