如果我更换工作表,如何在Excel中保留Cell Referencing?

时间:2016-06-13 13:26:46

标签: excel excel-2016

我有一张包含大量数据的表格。然后,我有一个不同的工作表,引用第一个工作表中的多个单元格。如果我想要删除第一张纸并将其替换为相同的纸张(在每种意义上都相同,即纸张名称,每个单元格中的数据类型,格式等,除了每个单元格中的实际文本数据),其他表格丢失,我的所有单元格都会产生#REF!错误。

是否有任何方法可以保留参考资料并更换或覆盖工作表,而无需手动剪切和粘贴信息?

提前感谢,

乔治

3 个答案:

答案 0 :(得分:1)

以下是我喜欢使用的解决方案:

  1. 在删除旧工作表之前,右键单击工作表名称,然后move(不复制)您要删除的工作表到新的/空工作簿。
  2. 现在,原始文件中的所有链接都会自动转换为引用新创建的工作簿,所有这些链接都会显示在Data标签(Excel菜单)ConnectionsEdit Links中。
  3. 现在您可以插入要参考的新工作表,在上面的菜单中,您可以更改链接以引用原始文件。因此,您实际上是在重新更改对自身的引用(从而删除对新创建的外部工作簿的引用)。
  4. 请注意,在此解决方案中,替换表在插入时必须具有相同的名称。但是,您可以(当然)在上述过程完成后更改工作表名称。

    我当然希望我能够充分解释。但是,如果您需要其他解释,请不要犹豫,告诉我。

答案 1 :(得分:0)

创建新工作表,然后执行查找&使用公式替换工作表以查找原始工作表名称并替换为新工作表名称。然后删除旧工作表,并将新工作表重命名为您想要的任何内容。

答案 2 :(得分:0)

阅读所有评论后,我的建议是采用以下方法(警告,这是一种解决方法,而不是一种干净的解决方案):

Sub DeleteSheets_KeepingReferences()
     Dim sht As Worksheet
     Set sht = ThisWorkbook.Sheets("")

     sht.Cells.Replace What:="=", Replacement:="#$%", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

     'Delete sheet
     Application.DisplayAlerts = False
     wb.Sheets(sht).Delete

     'Code to copy sheet

     sht.Cells.Replace What:="#$%", Replacement:="=", LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False
End Sub

基本上,我没有替换单元格中的工作表名称(@ TheGuyThatDoesn'tKnowMuch已经提出),而是替换了等号,暂时将单元格转换为文本,最后我再次转换了等号,如前所述,再次在所有单元格公式中创建公式。