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

编辑后Access窗体中Microsoft Excel 12 OLE对象连接丢失问题

解决Access中嵌入式Excel OLE对象编辑后引用失效的问题

当你双击Access窗体中的嵌入式Excel OLE对象(Feuilles)在外部Excel编辑并关闭后,之前通过Set wb = Feuilles.Object获取的工作簿引用会因为OLE连接断开而失效,触发错误-2147220995: Object is not connected to server。核心解决思路是重新获取OLE对象的引用,而非尝试用Action或Verb属性重建连接。

具体解决方案

  1. 避免在Form_Open事件中一次性赋值工作簿变量,而是在需要访问Excel对象时,重新从OLE控件的.Object属性获取引用。可以封装成一个复用函数:
Private Function GetExcelWorkbook() As Excel.Workbook
    On Error Resume Next
    ' 尝试直接获取引用
    Set GetExcelWorkbook = Feuilles.Object
    ' 如果获取失败,激活OLE对象后重试
    If Err.Number <> 0 Then
        Feuilles.Activate
        Set GetExcelWorkbook = Feuilles.Object
    End If
    On Error GoTo 0
End Function
  1. 在需要操作Excel工作簿的地方,调用该函数获取最新引用:
Dim wb As Excel.Workbook
Set wb = GetExcelWorkbook

If Not wb Is Nothing Then
    Dim sheetCount As Integer
    sheetCount = wb.Worksheets.Count
    ' 执行你的后续操作,比如读取数据、修改内容等
    Debug.Print "工作表数量:" & sheetCount
Else
    MsgBox "无法连接到嵌入式Excel工作簿"
End If

关键说明

  • 之前尝试的Feuilles.Action =7、Feuilles.Verb =0/-1等方法,仅用于触发OLE对象的显示或激活动作,无法修复已断开的对象引用,必须重新通过.Object属性获取实例。
  • 确保VBA编辑器中已引用Microsoft Excel xx.x Object Library(路径:工具 -> 引用,勾选对应版本),否则会出现类型未定义错误。
  • 每次操作Excel对象前都重新获取引用,可避免因编辑、关闭外部Excel导致的连接失效问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 11:10:56