如题所述
é¦å
建ä¸æ°EXCELæ件,å¤å¶ä»¥ä¸ä»£ç ï¼æ§è¡å®å³å¯
Private Sub VBAPassword()
'ä½ è¦è§£ä¿æ¤çExcelæ件路å¾
Filename = Application.GetOpenFilename("Excelæ件ï¼*.xls & *.xla & *.xltï¼,*.xls;*.xla;*.xlt", , "VBAç ´è§£")
If Dir(Filename) = "" Then
MsgBox "没æ¾å°ç¸å ³æ件,æ¸ éæ°è®¾ç½®ã"
Exit Sub
Else
FileCopy Filename, Filename & ".bak" 'å¤ä»½æ件ã
End If
Dim GetData As String * 5
Open Filename For Binary As #1
Dim CMGs As Long
Dim DPBo As Long
For i = 1 To LOF(1)
Get #1, i, GetData
If GetData = "CMG=""" Then CMGs = i
If GetData = "[Host" Then DPBo = i - 2: Exit For
Next
If CMGs = 0 Then
MsgBox "请å 对VBAç¼ç 设置ä¸ä¸ªä¿æ¤å¯ç ...", 32, "æ示"
Exit Sub
End If
Dim St As String * 2
Dim s20 As String * 1
'åå¾ä¸ä¸ª0D0Aåå è¿å¶å串
Get #1, CMGs - 2, St
'åå¾ä¸ä¸ª20åå å¶å串
Get #1, DPBo + 16, s20
'æ¿æ¢å å¯é¨ä»½æºç
For i = CMGs To DPBo Step 2
Put #1, i, St
Next
'å å ¥ä¸é 对符å·
If (DPBo - CMGs) Mod 2 <> 0 Then
Put #1, DPBo + 1, s20
End If
MsgBox "æ件解å¯æå......", 32, "æ示"
Close #1
End Sub
Private Sub VBAPassword()
'ä½ è¦è§£ä¿æ¤çExcelæ件路å¾
Filename = Application.GetOpenFilename("Excelæ件ï¼*.xls & *.xla & *.xltï¼,*.xls;*.xla;*.xlt", , "VBAç ´è§£")
If Dir(Filename) = "" Then
MsgBox "没æ¾å°ç¸å ³æ件,æ¸ éæ°è®¾ç½®ã"
Exit Sub
Else
FileCopy Filename, Filename & ".bak" 'å¤ä»½æ件ã
End If
Dim GetData As String * 5
Open Filename For Binary As #1
Dim CMGs As Long
Dim DPBo As Long
For i = 1 To LOF(1)
Get #1, i, GetData
If GetData = "CMG=""" Then CMGs = i
If GetData = "[Host" Then DPBo = i - 2: Exit For
Next
If CMGs = 0 Then
MsgBox "请å 对VBAç¼ç 设置ä¸ä¸ªä¿æ¤å¯ç ...", 32, "æ示"
Exit Sub
End If
Dim St As String * 2
Dim s20 As String * 1
'åå¾ä¸ä¸ª0D0Aåå è¿å¶å串
Get #1, CMGs - 2, St
'åå¾ä¸ä¸ª20åå å¶å串
Get #1, DPBo + 16, s20
'æ¿æ¢å å¯é¨ä»½æºç
For i = CMGs To DPBo Step 2
Put #1, i, St
Next
'å å ¥ä¸é 对符å·
If (DPBo - CMGs) Mod 2 <> 0 Then
Put #1, DPBo + 1, s20
End If
MsgBox "æ件解å¯æå......", 32, "æ示"
Close #1
End Sub
温馨提示:答案为网友推荐,仅供参考