Workbook.Unprotect 无法通过 ACCESS VBA

Workbook.Unprotect doesn't work from ACCESS VBA

我从 MS Access 打开一个 Excel (.xlsx) 文件以应用一些更改,保存并上传到 Access。一切都由 VBA.

管理

如果 Excel 文件没有打开密码加密,VBA 可以完美运行。

为了管理一个用密码加密的工作簿,我写了一个 VBA 有很多奇怪的错误。我以密码形式提供输入,但以下代码未读取密码。打开工作簿,Excel 要求我在提示中插入工作簿密码。然后,Workbook.Unprotect 不会解除使用密码保存的工作簿的保护。正如预期的那样,Access 无法从受保护的 Excel 文件上传数据。

我认为应该是一个很容易解决的问题,但我想不通。你有什么见解可以给我吗?

'( VBA procedure starts with variable declaration)

Set ExcelApp = CreateObject("Excel.Application")

If IsNull(Me!Password_Ins) 'Password_Ins is the input 
    Then
    Strg_Pwd = ""
    Else: Strg_Pwd = Me!Password_Ins
    End If

On Error GoTo ErrorHandler
Set WorkBookObj= ExcelApp.Workbooks.Open(Percorso, False, , , Strg_Pwd) ' asks to insert the password manually

'ExcelApp.Visible = True

WorkBookObj.Unprotect Strg_Pwd 'doesn't remove the password

' (procedure continues)

WorkBookObj.Unprotect 删除工作sheet 密码。它运作良好。 Strg_Pwd是Excel文件的加密密码。使用“Workbooks.Open”作为参数允许打开文件,但无论如何它都是加密的。为了避免加密,我创建了一个新的 Excel 文件并复制并粘贴了 sheet.