Excel 宏请求:另存为副本并中断数据连接

Posted

技术标签:

【中文标题】Excel 宏请求:另存为副本并中断数据连接【英文标题】:Excel Macro Request: Save As Copy and Break Data Connection 【发布时间】:2016-08-27 21:30:36 【问题描述】:

我有一个 MASTER excel 电子表格用作模板,因此我可以使用链接到我的数据透视表的新数据表刷新 CONNECTION(.csv 文件)。

现在我有一个宏可以保存为特定路径,因为我想保持原件不变。

Sub SaveCopyPath()

With ActiveWorkbook
   .SaveCopyAs "C:\Users\Me\" & Format(Date, "mmddyyyy") & "-" & [A1] & ".xlsm"
End With

End Sub
我正在寻找仅适用于我的 SAVED AS COPY 的 VBA 代码:
    BREAK 数据表上的连接 仅删除已保存副本上的 TAB1 和 TAB2,并保持已保存副本上的数据透视表和“数据”不变。

【问题讨论】:

我看到您编辑了问题以添加源是 csv 的事实。如果您提供更多指导,我可以在下面修改我的答案。连接是否在结构化表中?还是只是在一张纸上? 数据从 CSV 中提取并添加到数据模型中,在我的“数据”表上以表格的形式查看。我能够通过使用 ActiveWorkbook.Connections ("ModelConnection").Delete 让它工作 酷!这就是我希望对你有用的东西。 【参考方案1】:

这使用ListObject.Unlink 方法删除数据连接。其余的应该很简单:

Sub SaveCopyPath()
Dim SavedCopy As Excel.Workbook

ActiveWorkbook.SaveCopyAs "C:\Users\Me\" & Format(Date, "mmddyyyy") & "-" & [A1] & ".xlsm"
Workbooks.Open "C:\Users\Me\" & Format(Date, "mmddyyyy") & "-" & [A1] & ".xlsm"
Set SavedCopy = ActiveWorkbook
With SavedCopy
    .Worksheets("Data").ListObjects(1).Unlink
    Application.DisplayAlerts = False
    .Worksheets(1).Delete
    .Worksheets(1).Delete
    Application.DisplayAlerts = True
    .Close True
End With

End Sub

【讨论】:

以上是关于Excel 宏请求:另存为副本并中断数据连接的主要内容,如果未能解决你的问题,请参考以下文章

我想用Excel宏编写代码来对SQL数据库进行连接和操作,请教详细的步骤或方法,重分!!!!一定加分

Excel VBA 宏,用于过滤从连接的 SQL 表中提取的时间戳数据

另存为excel宏单张表

arcgis连接到数据库失败是啥原因?如何解决?

怎样用宏把EXCEL里C列的数据全部自动导出保存为CSV格式?

Excel表格的图标上面出现了一个感叹号怎么去除?