情况:使用来自oracle的数据创建Excel 2010工作簿。创建数据连接以实现此目的。然后将excel工作簿保存为.xls文件,以便具有旧版Office的客户可以访问它。
问题:打开工作簿时会显示警告消息:
'安全警告数据连接已被禁用[启用内容]'。
我们认为这是显示的,因为数据连接仍然存在于工作簿中。您可以转到Data-> Connections并将其删除,但是当保存并重新打开工作簿时,数据连接已经返回(尽管有空的定义字段)。
尝试的事情:使用宏删除所有数据连接:没有快乐。这里描述的“名称管理器”方法(http://www.mrexcel.com/forum/showthread.php?t=467938):没有快乐。
还有其他人看到过这种行为吗?
答案 0 :(得分:8)
在导入数据的单元格区域中选择一个单元格,然后按Menu>数据>属性>取消选中保存查询定义。
除非选择数据导入范围中的单元格,否则属性将显示为灰色。
您可以通过以下方式找到数据导入的范围:
菜单>数据>连接> (选择连接)>单击此处查看所选连接的使用位置。
答案 1 :(得分:5)
我今天遇到了同样的问题。如果删除所有连接后,连接属性仍然存在。我点击属性,通过选择名称窗口并删除它来删除名称。
出现了警告以确认我真的想要这样做。选择是后,它摆脱了连接。保存工作簿。
我是Excel的黑客,但这似乎有效。
答案 2 :(得分:4)
弹出 导入数据 框时 点击属性并删除 保存查询定义旁边的复选标记 当 导入数据 框返回时 并且您的位置是您想要的位置 (例如:= $ I $ 4)点击确定并解决您的问题 将被解决
答案 3 :(得分:3)
我设法在excel 97-2003中解决这个问题,在这个扩展名为.xls的文件中: 我转到我拥有链接数据的页面,将光标放在导入的数据表上,转到选项卡设计 - >外部数据表 - >取消链接 取消链接所有表格(标题),删除数据中的所有标题 - > Conections - > Conections 保存你的工作并完成! 问候, 丹
答案 4 :(得分:3)
我遇到了同样的问题。得到警告。去了数据连接并删除了连接。保存,关闭重新打开。仍然得到警告。 我使用xp / vista菜单插件来获取经典菜单。我发现在数据下,获取外部数据,属性,取消选中保存查询定义。保存关闭并重新打开。 这似乎摆脱了警告。 只是删除连接不起作用。你必须摆脱这个问题。
答案 5 :(得分:2)
我遇到过一个下拉菜单,指的是控件范围(例如将工作表从一个工作簿复制到另一个工作簿之后),将在复制工作表后保留该单元格引用,并保持一个不可见的数据连接。 “连接”。我在功能区的“搜索”菜单中找到了这个,可以选择箭头来标记对象。箭头下方是一个菜单选项,用于查看面板中列出的所有对象。然后你可以删除那些不需要的对象,数据源/连接就消失了......
答案 6 :(得分:1)
Excel 2010:在“文件/信息”页面上,转到“相关文档”,然后单击“中断链接”=>警告将显示所有链接的值将转换为其数据值=>点击ok =>完成
答案 7 :(得分:1)
可以使用VBA如下删除数据连接:
Sub deleteConn()
Dim xlBook As Workbook
Dim Cn As WorkbookConnection
Dim xlSheet As Worksheet
Dim Qt As QueryTable
Set xlBook = ActiveWorkbook
For Each Cn In xlBook.Connections
Debug.Print VarType(Cn)
Cn.Delete
Next Cn
For Each xlSheet In xlBook.Worksheets
For Each Qt In xlSheet.QueryTables
Debug.Print Qt.Name
Qt.Delete
Next Qt
Next xlSheet
End Sub
答案 8 :(得分: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
答案 9 :(得分:0)
我遇到了同样的问题。请试试这个:
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