复制源文件时管理Excel源工作簿中的链接

时间:2018-07-12 09:00:15

标签: excel database vba excel-vba save

我有三个文件:

Activefile-我的代码存储和运行的地方

数据库文件-我的原始数据存放在这里(有很多保护)

Copyofdatabasefile-是没有保护的副本

我有一个在 activefile 中运行的宏来更新 databasefile excel文件,稍后在该宏中,然后在 databasefile中使用saveas方法< / em>制作 copyofdatabasefile 文件,我删除了一些功能,使人们可以轻松访问数据,而无需对主 databasefile 进行某些检查。

保存 copyofdatabasefile 时,活动文件中的链接会更新,以查看新的 copyofdatabasefile 文件。我不希望这种情况发生。

如何调整我的Excel链接/代码,以确保文件中的链接不会传输到 copyofdatabasefile

Saveas宏选项当前为:

Databasefile.SaveAs filename:="\\somelocation\copyofdatabasefile.xlsx", FileFormat:=51, CreateBackup:=False

1 个答案:

答案 0 :(得分:1)

使用Workbook.SaveCopyAs Method应该可以。

如果您的原始文件是xlsx,请使用

Databasefile.SaveCopyAs Filename:="\\somelocation\copyofdatabasefile.xlsx"

请注意,它仅以与原始文件相同的FileFormat保存!


如果您的原始文件是xlsm,请使用

如果您需要更改文件格式(例如,从xlsm更改为xlsx),则需要先以原始文件格式另存为副本,然后使用Workbooks.Open()重新打开该副本,然后然后使用.SaveAs更改文件格式。

Databasefile.SaveCopyAs Filename:="\\somelocation\copyofdatabasefile.xlsm" 'if original file was xlsm

Dim wb As Workbook
Set wb = Workbooks.Open("\\somelocation\copyofdatabasefile.xlsm")
wb.SaveAs filename:="\\somelocation\copyofdatabasefile.xlsx", FileFormat:=51, CreateBackup:=False
wb.Close False
Kill "\\somelocation\copyofdatabasefile.xlsm" 'delete old format