【问题标题】:Linking worksheets to a master worksheet and keeping values if the master worksheet is not present? Excel 2010将工作表链接到主工作表并在主工作表不存在时保留值? Excel 2010
【发布时间】:2011-05-18 15:40:20
【问题描述】:

我有很多工作表,目前,我必须每 3 个月一个一个地检查这些工作表,以更新几个单元格中的信息。

如果我可以创建一个主源文件,其中包含这几个要更新的单元格,我的所有工作表都链接到该文件,那就太好了,这样我就可以更新这个文件,然后我的所有文件都会更新。

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

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

我希望这是有道理的!我想做的事情很简单,只是说起来有点棘手。

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

【问题讨论】:

  • 这不能通过简单的链接来完成。您必须编写一段 VBA 代码。

标签: excel vba excel-2010


【解决方案1】:

您会认为有一种开箱即用的简单方法可以做到这一点,但它确实存在问题。这个不太优雅的解决方案展示了如何从更新客户表时必须打开的主工作簿复制单元格或范围。显然,客户端用户不会拥有主工作簿,因此在这种情况下宏会静默失败。将此代码放入每个客户端工作簿的 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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2023-03-19
      • 1970-01-01
      • 1970-01-01
      • 2019-02-19
      • 1970-01-01
      • 2018-07-06
      • 2012-08-30
      • 2014-09-21
      • 1970-01-01
      相关资源
      最近更新 更多