【发布时间】:2017-09-28 07:56:21
【问题描述】:
如果工作表编号/名称是变量/变体,我如何在公式中引用下一个或上一个工作表。
我已经看到了用 vba 做到这一点的方法,有没有办法用公式或函数做到这一点
【问题讨论】:
-
请举个例子
标签: excel function excel-formula
如果工作表编号/名称是变量/变体,我如何在公式中引用下一个或上一个工作表。
我已经看到了用 vba 做到这一点的方法,有没有办法用公式或函数做到这一点
【问题讨论】:
标签: excel function excel-formula
这是另一种使用常规 Excel 公式列出所有工作表名称的方法:
Cell A1:=CELL("filename",1:1048576)
Cell B1:=MID(A1,FIND("[",A1)+1,FIND("]",A1)-FIND("[",A1)-1)
转到Formula > Name Manager > New,如下图,在Name字段中输入SheetNames,在Refers to字段中输入以下公式:
=GET.WORKBOOK(1,Sheet29!$B$1)&T(NOW())
请注意,我是在 Sheet29 上设置的。您应该将其更改为您正在使用的工作表。
来自cell A2,填写下面的公式并向下拖动以列出所有工作表名称:
=INDEX(MID(SheetNames,FIND("]",SheetNames)+1,255),ROWS(A$1:A1))
在我的示例中,我没有Sheet28,并且工作表名称也按从左到右的顺序排序。移动并检查结果。
【讨论】:
在 Excel 中。在任何单元格中输入等号“=”。这将使您进入交互模式。
导航到其他工作表并单击要引用的单元格。然后点击进入。
返回上一张表并编辑您开始使用的单元格,您应该会看到要使用的公式。
参考下一张/上一张表(See example here)。我认为你需要一些 VB 代码(类似于以下内容):
Function PrevSheet(RCell As Range)
Dim xIndex As Long
Application.Volatile
xIndex = RCell.Worksheet.Index
If xIndex > 1 Then _
PrevSheet = Worksheets(xIndex - 1).Range(RCell.Address)
End Function
然后使用
=PrevSheet(A1)
【讨论】: