复制工作表和单元格引用

复制工作表和单元格引用

假设我在同一个工作簿中有“工作表 A”和“工作表 B”。

工作表 B 中有一个引用工作表“A”的单元格,即 ='Sheet A'!Q20

我想复制工作表 B 并在同一个工作簿中创建“工作表 C”,并且我希望工作表 C 中的单元格引用 (='工作表 A'!Q20) 现在引用工作表 B。即 ='工作表 B'!Q20。

当我复制工作表 B 并创建工作表 C 时,单元格引用仍然是 ='工作表 A'!Q20

我曾看到过类似问题的解决方案,但不是在同一个工作簿内复制工作表时。

短暂性脑缺血发作

答案1

尝试这个公式表 B

=INDIRECT("'Sheet "&CHAR(CODE(RIGHT(CELL("filename"),1))-1)&"'!A1")

在此处输入图片描述

答案2

ofs您还可以定义一个简单的 UDF,它返回从当前工作表移动其位置的工作表的名称。

Function sh(ofs As Long) As String
    Dim cw As Long
    cw = Application.Caller.Parent.Index
    sh = Worksheets(cw + ofs).Name
End Function

上一个工作表的名称为sh(-1),下一个工作表的名称为sh(1)。现在,您可以通过公式
引用上一个工作表中的单元格:Q20

=INDIRECT("'"&sh(-1)&"'!Q20")

或者

=INDIRECT(ADDRESS(20,17,,,sh(-1)))

相关内容