You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用VBA/VBS打开带只读密码的加密XLSX并另存为无密码文件的问题求助

解决加密XLSX文件在VBA中打开时卡住的问题

你遇到的核心问题是参数传递语法错误,导致密码没有被正确传入Workbooks.Open方法,Excel依然弹出密码输入框,程序因此卡住等待用户操作,进而触发了"Excel正在等待另一个应用程序完成OLE操作"的提示。另外你的代码里还有几处拼写和语法小问题,我帮你修正并优化了方案:

修正后的完整代码

Sub OpenXlsx()
    Dim objExcel As Object
    Dim wb As Object
    Dim wb1 As Object
    Dim path As String
    Dim newpath As String
    
    ' 初始化Excel应用对象,注意是CreateObject(没有点)
    Set objExcel = CreateObject("Excel.Application")
    ' 后台运行Excel,不显示界面避免干扰
    objExcel.Visible = False
    ' 关闭不必要的弹窗提示,确保流程自动化
    objExcel.DisplayAlerts = False
    
    path = "C:/myfilepath.xlsx"
    newpath = "C:/12myfilepath.xlsx"
    
    ' 正确传递密码参数:VBA中命名参数必须用:=关联参数名和值
    Set wb = objExcel.Workbooks.Open(Filename:=path, Password:="123")
    ' 创建新工作簿,修正拼写错误Wookbooks→Workbooks
    Set wb1 = objExcel.Workbooks.Add()
    
    ' 直接赋值比复制粘贴更高效,还能避免剪贴板依赖
    wb1.Sheets(1).Cells.Value = wb.Sheets(1).Cells.Value
    
    ' 保存新工作簿
    wb1.SaveAs Filename:=newpath
    ' 关闭原工作簿,不保存更改
    wb.Close SaveChanges:=False
    ' 关闭新工作簿
    wb1.Close SaveChanges:=False
    
    ' 清理对象并退出Excel,避免进程残留
    Set wb = Nothing
    Set wb1 = Nothing
    Set objExcel = Nothing
End Sub

关键修改点说明

  • 参数传递修正:把Password = "123"改成Password:="123",之前的写法只是创建了一个局部变量,根本没把密码传给打开方法,这是导致密码弹窗卡住的核心原因。
  • 拼写错误修复:Create.Object→CreateObject,Wookbooks→Workbooks,这些小错误会直接导致对象创建失败。
  • 后台运行优化:设置objExcel.Visible = False让Excel在后台静默运行;DisplayAlerts = False关闭保存、覆盖等提示弹窗,确保流程全程自动化。
  • 复制方式优化:用直接赋值Cells.Value = Cells.Value替代复制粘贴,不仅运行效率更高,还避免了剪贴板占用和格式粘贴的冗余问题。

额外注意事项

  • 如果你的密码是修改权限密码(不是打开文件的密码),需要把Password:="123"换成WriteResPassword:="123"。
  • 可以添加错误捕获逻辑,避免密码错误或文件不存在时程序崩溃:
    On Error Resume Next
    Set wb = objExcel.Workbooks.Open(Filename:=path, Password:="123")
    If Err.Number <> 0 Then
        MsgBox "操作失败:" & Err.Description
        objExcel.Quit
        Set objExcel = Nothing
        Exit Sub
    End If
    On Error GoTo 0
    

内容的提问来源于stack exchange,提问作者Hawk Hao

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.29 04:29:06