断开与excel 2007数据源的连接

时间:2010-07-16 07:40:39

标签: excel excel-vba excel-2007 vba

我有和excel文件连接到外部xml文件并将其用作数据源 (每次我使用“全部刷新”时,它会读取xml文件并使用数据更新工作表。)

我想断开与数据源的连接(以便将当前数据复制到工作表中,按“全部刷新”将无效)。

我尝试从连接列表中删除连接,但是此DO会在下次刷新时导致错误(excel仍在尝试查找xml文件)。

我想以编程方式(在宏中)执行此操作,但是现在我甚至没有找到在UI中执行此操作的好方法。

以不同方式创建连接(因此它只会复制第一个值)对我来说不是一个好的解决方案,因为我需要在断开xml之前刷新文件中的数据。)

谢谢!

1 个答案:

答案 0 :(得分:1)

在Excel 2003中,要断开查询,您需要取消选中“保存查询定义”复选框选项。右键单击导入的数据时,在“数据范围属性...”下。我确信它与Excel 2007类似。

如果您希望以编程方式执行此代码,则此代码也会断开查询表:

Sub DisconnectQuery(sheetName As String, qryName As String)

    Dim myQry As QueryTable

    Set myQry = Sheets(sheetName).QueryTables(qryName)

    myQry.Delete 'disconnects the querytable, data still remains
End Sub

Sub test()

    DisconnectQuery "YourQuery" 'the name is found under "Data Range Properties..."
End Sub