将工作表链接到主工作表并在主工作表不存在时保留值? Excel 2010

时间:2011-05-18 15:40:21

标签: excel vba excel-2010

我有很多工作表,目前,每隔3个月,我必须逐一完成这些工作表,以便在几个单元格中更新信息。

如果我可以创建一个主源文件,包含这些更新的单元格,并且我的所有工作表都链接到了,这样我就可以更新此文件,然后我的所有文件都会更新。

我唯一的麻烦就是我然后通过电子邮件将这些工作表发送给客户,每个客户都获得一个特定的工作表。

这意味着到主源文件的本地链接将不再存在,我假设会出现错误。是否有某种方法可以根据需要将我的文件链接到主文件,能够更新主文件并相应地更新所有其他文件,但是然后只将一个文件发送到客户端并保留其中的值主文件。

我希望这是有意义的!我想做的事情很简单,把它写成文字有点棘手。

任何帮助或建议都会很棒!

2 个答案:

答案 0 :(得分:3)

你会认为开箱即用的方法很简单,但确实存在问题。这个不太优雅的解决方案显示了如何从更新客户端工作表时必须打开的主工作簿中复制单元格或范围。显然,客户端用户将没有主工作簿,因此在这种情况下宏会无声地失败。将此代码放在每个客户端工作簿的ThisWorkbook模块中。

Private Sub Workbook_Open()
    On Error Resume Next
    Dim master As Workbook
    Set master = Workbooks("master.xlsm")

    If master Is Nothing Then
    'the client is probably opening the wbook. do nothing
    Else 'copy your stuff here
        With Workbooks("master.xlsm")
            .Worksheets("Sheet1").Range("A1:D4").Copy _
                Destination:=Worksheets("Sheet1").Range("A1:D4")
        End With
    End If

End Sub

答案 1 :(得分:0)

我希望我能正确理解你的问题。我们所做的是将工作簿保存为具有不同文件名的不同工作簿。我们通常将“_sent.xlsx”附加到工作簿文件名。然后打开它,转到数据,编辑链接,并中断所有链接。只有“值”才会保留在工作簿中。保存工作簿,您可以将其发送出去,而不必担心打开它时会破坏的值。如果您需要更改任何内容,仍然可以使用原始文件。