如何将许多excel文件链接到一个主文件,这样如果我更新单个主文件,所有链接文件也会更新?

时间:2011-05-18 11:06:15

标签: excel vba excel-2010

我想知道是否有人可以提供帮助?

我有大量的excel文件。这些是佣金报表,有些是从美元兑换成英国英镑,从英镑转换为欧元等等。

它们是季度状态,目前我必须逐个浏览每个文件并输入该月的特定货币转换率。

我想如果我能将所有这些语句链接到包含转换率的单个excel文件,那将会很棒。然后我可以更新这个单一货币转换文件,所有其他文件都会更新。

我想我可以解决这个问题,但我遇到了一些问题。

如果我然后将声明文件发送给个人,则两个文件之间的本地链接将丢失,因此转换数字也会如此。我能看到的唯一解决方法是发送包含转换率的文件以及声明,但如果可能的话,我宁愿不这样做。

我希望你能理解我的问题,如果有人能对此提出任何修正,那就太好了!

提前致谢:o)

我在这里有一些关于在所有excel文件中包含隐藏费率表的建议:

Linking cells from 2 different excel files, but then keeping figures if emailing only one file?

然后可见工作表中的费率可以链接到隐藏费率表中的单元格,然后隐藏的费率表可以链接到单独的主费率文件,我将更改为更新所有链接的Excel文件的费率。

如果我要将一个excel文件发送给电子邮件中的人员,我仍然不确定这将如何工作,因为主要费率文件的本地链接将丢失。有工作吗?

任何帮助都会非常感激!

1 个答案:

答案 0 :(得分:2)

一种方法是将主转换率工作簿放在网络上

您的语句工作簿可以通过公式在Web上引用主工作簿。例如:

='http://www.your-site.com/test/[Workbook1.xls]Sheet1'!A1

虽然这种方法很有趣,但我建议您在网络上使用主Excel转换率工作簿。


声明工作簿将链接到此主转换率工作簿以获取费率。

在发送语句之前,我会运行一些VBA代码来遍历工作簿。

代码将打开工作簿,更新链接然后将其分解。

链接单元格中剩余的值是最新更新的值。

以下代码更新并中断工作簿中的所有链接。

Sub Update_And_BreakLinks()

Dim vLinks As Variant
Dim lLinks As Long

    vLinks = ActiveWorkbook.LinkSources(Type:=xlLinkTypeExcelLinks)
'Get a list of all the links in the workbook

    If IsEmpty(vLinks) Then Exit Sub
'If no links then exit

    For lLink = LBound(vLinks) To UBound(vLinks)
        ActiveWorkbook.UpdateLink Name:=vLinks(lLink), Type:=xlLinkTypeExcelLinks
    Next lLink
'Update links

    For lLink = LBound(vLinks) To UBound(vLinks)
        ActiveWorkbook.BreakLink Name:=vLinks(lLink), Type:=xlLinkTypeExcelLinks
    Next lLink
'Break the links.  The link is replaced with the value from the last update

End Sub

请查看有关如何在文件夹中循环工作簿的问题

5851531