在 Excel 2010 兼容模式下删除数据连接

12
情况: 使用来自Oracle的数据创建了一个Excel 2010工作簿。创建了一个数据连接以实现此目的。然后将Excel工作簿保存为.xls文件,以便使用较旧版本的Office的客户能够访问它。
问题: 当打开工作簿时会显示警告信息:
“安全警告 数据连接已被禁用 [启用内容]”。
我们认为这是因为数据连接仍然存在于工作簿中。您可以转到“数据”->“连接”并将其删除,但是当保存并重新打开工作簿时,数据连接会重新出现(尽管是空的定义字段)。
尝试过的事情: 使用宏删除所有数据连接:无效。在这里描述的“名称管理器”方法( http://www.mrexcel.com/forum/showthread.php?t=467938 ):无效。
有其他人看到过这种行为吗?

注意 - 将其保存为2010 xlsx格式,然后删除连接是可行的,但当同一工作簿重新保存为.xls格式时,连接会再次出现。烦死了! - dartacus
我们还尝试过将文件另存为xlsx格式,以压缩文档的形式打开该文件,直接编辑xl/connections.xml,然后重新保存,但这样会破坏工作簿中的任何数据透视表! 看起来只有在存在数据连接时数据透视表才能正常运行-您可以做的最好的就是将DSN和SQL字段留空。 - dartacus
你怎么“移除”它?我找不到任何移除按钮。 - Soren
抱歉,Soren,我恐怕这对我来说已经是很久以前的事情了,但希望其他人能够提供帮助。 - dartacus
11个回答

9

选择数据导入范围中的单元格,然后依次点击 菜单 > 数据 > 属性 > 取消选中保存查询定义。

除非选择了数据导入范围中的单元格,否则属性将被禁用。

您可以通过以下步骤找到导入数据的范围:

菜单 > 数据 > 连接 > (选择连接)> 单击此处查看所选连接的使用位置。


7
今天我也遇到了同样的问题。如果你在删除所有连接之后,连接属性仍然存在。我点击了属性,通过选择名称窗口并将其删除来删除名称。出现了一个警告,以确认我是否真的想这样做。选择是后,连接被删除了。保存工作簿。我对Excel不是很精通,但这似乎起作用了。

谢谢 Dave - 我记不清我们最终是如何解决这个问题的,但很可能我们让它悬而未决了。 - dartacus
似乎Excel中也存在一个错误,即删除连接时并不能完全取消关联的刷新设置,因此下次文件尝试刷新时,连接会丢失,导致表格为空。为了解决这个问题,在删除连接之前,我进入“数据”->“连接”->[连接]->“属性”...并禁用所有刷新设置。我认为这可能是特定于“在保存工作簿之前从外部数据范围中删除数据”的设置。 - Chiramisu

4
导入数据框弹出时,点击属性并移除保存查询定义旁边的勾选标记。当导入数据框再次出现且位置在需要的地方(例如:=$I$4),点击确定即可解决问题。

3

我曾经遇到同样的问题。收到了警告。去“数据连接”中删除了连接。保存,关闭并重新打开。仍然出现警告。 我使用了一个用于经典菜单的xp/vista菜单插件。在“数据”下找到“获取外部数据”,选择“属性”,取消勾选“保存查询定义”。保存,关闭并重新打开。 这似乎已经解决了警告的问题。 仅仅删除连接是行不通的。你必须摆脱查询。


3
我在Excel 97-2003中解决了这个问题,使用 .xls 扩展名的文件,方法如下: 1. 光标悬停在导入数据表格上,进入Design选项卡。 2. 点击External Data Table,然后选择Unlink。 3. 取消所有表格(连接),删除Data --> Connections --> Connections中的所有连接。 4. 保存您的工作并完成! 谢谢, 丹

2

我曾经遇到过这样的情况:在复制工作表时,下拉菜单会保留控制范围的单元格引用,并保持数据连接,但这种连接在“连接”中是看不见的。我在功能区的“搜索”菜单中找到了它,在那里可以选择一个箭头来标记对象。箭头下面有一个菜单选项,可以在面板中查看所有列出的对象。然后,您可以删除那些不需要的对象,数据源/连接就会消失...


1
通过外部连接导入的数据被导入到表格中。要将表格与数据取消链接,请执行以下操作:
  1. 单击包含导入数据的表格中的任意单元格。
  2. 在菜单上单击“表格设计”。
  3. 在工具栏组“外部表格数据”中,单击“取消链接”。在确认提示上单击“确定”。
这将取消表格的链接并从Excel文件中删除任何相关信息。
在VBA中,您可以使用以下命令:
<sheetname>.ListObjects("<table name>").Unlink

请将<sheetname>替换为工作表的名称,将<tabe name>替换为与外部数据链接的表格的名称。

1
我有许多连接无法删除,但又不想全部删除。因此,我扩展了Dang Thanh和Richard Ho的解决方案,以便提示用户决定要删除哪些连接。
要在工作簿中删除一些但不是全部连接:
Public Function deleteConnections()

    Dim xlBook As Workbook
    Dim cn As WorkbookConnection
    Dim Result As Variant

    Set xlBook = ActiveWorkbook

    For Each cn In xlBook.Connections

        Dim strMsg As String
        strMsg = "Would you like to delete: " & vbNewLine & cn.Name
        Result = MsgBox(strMsg, vbYesNo)

        If Result = vbYes Then
            cn.Delete
        End If

    Next cn

End Function

1

Excel 2010: 在“文件/信息”页面中,找到“相关文档”,点击“断开链接” => 出现警告,所有链接值将转换为其数据值 => 点击确定 => 完成。


1
我有同样的问题。请尝试这个:

Sub deleteConn(xlBook)
    For Each Cn In xlBook.Connections
        Cn.Delete
    Next Cn

    For Each xlsheet In xlBook.Worksheets
        For Each Qt In xlsheet.QueryTables
            Qt.Delete
        Next Qt
    Next xlsheet

End Sub

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接