![複製工作表和儲存格引用](https://rvso.com/image/1692549/%E8%A4%87%E8%A3%BD%E5%B7%A5%E4%BD%9C%E8%A1%A8%E5%92%8C%E5%84%B2%E5%AD%98%E6%A0%BC%E5%BC%95%E7%94%A8.png)
假設我在同一工作簿中有「工作表 A」和「工作表 B」。
工作表 B 有一個引用工作表「A」的儲存格,即 ='工作表 A'!Q20
我想在同一工作簿中複製工作表B 並建立“工作表C”,並且希望工作表C 中的儲存格引用(='工作表A '!Q20) 現在引用工作表B。 B '!Q20。
當我複製工作表 B 並建立工作表 C 時,儲存格引用仍然 ='Sheet A '!Q20
我已經看到了類似問題的解決方案,但在同一工作簿中複製工作表時卻沒有。
TIA
答案1
答案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)))