1、定义一个名称为xh;
2、在应用位置中输入=MATCH(GET.CELL(32),GET.WORKBOOK(1),);
3、xh返回的值就是当前工作表的序号;
4、在引用中使用INDIRECT函数;
5、例如想引用上一张工作表中的A1的数据
=INDIRECT("sheet"&xh-1&"!"&"A1")
用一个笨方法试试:
你可以在新的一张工作表,查看A1单元格内原有公式引用的工作表名称,然后用编辑-查找-输入需要更改的工作表名称如“7月”改成下一月如“8月”,然后-全部替换。
方法比较笨,但是也能起到你想要的效果,只是多了一个环节,但是也给文件减少了不好的占用空间。
Function kbyy(a) '跨表引用.工作表序号差值,行号,列号
Application.Volatile
If a = 0 Then '循环引用
kbyy = "参数错误"
GoTo js
End If
x = Application.ThisCell.Worksheet.Index + a '公式所在工作表的序号
If b = 0 Then '所在单元格的行号
b = Application.ThisCell.Row
End If
If c = 0 Then
c = Application.ThisCell.Column
End If
kbyy = Worksheets(x).Cells(b, c).Value
js:
End Function
一般用法:
=kbyy(-1)
返回值:对上一张工作表相同位置的引用.
引用对象:
文本的,返回文本
数字的,返回数字
空值,返回0
这个应该实现不了,excel可以引用其它工作表名,但它没法判断公式所在的工作表名。以上只是个人看法,期待更全面的回答。