在月底我得到了一个包含可变数量工作表的 Excel 文件。
每张工作表的同一个单元格中都有一个值:A1
我想创建一个新工作表并显示每张工作表上 A1 的所有值及其总和。
我知道如何获取跨表单元格的值=Sheet1!A1
,但如果我放入一张新表=Sheet1!A1
并尝试将其扩展为一系列,它将用以下公式填充=Sheet1!
乙1
代替=Sheet
2!A1
这就是期望的结果。
如何制作带有工作表交叉引用的自定义列表?
答案1
如果不知道如何实现,一个简单的方法是使用间接
因此,在你的总结中,如果你从第 1 行开始 -
=INDIRECT("Sheet"&ROW()&"!$A$1")
这将在 Sheet1 上显示 A1
第 2 行将显示 Sheet2 上的 A1
ETC。
另一种方法是使用宏
Sub gather()
Dim wssrc As Worksheet
'if this stays as activesheet, only run this when summary sheet is active
'Otherwise, just change the activesheet to the summary sheet like -
'Set wssrc = ThisWorkbook.Sheets("Sheet4") where "Sheet4" is whatever your summary sheet is
Set wssrc = ActiveSheet
Dim i As Integer
i = 1
For Each sh In ThisWorkbook.Sheets
If Not sh.Name = wssrc.Name Then
wssrc.Cells(i, 1) = sh.Cells(1, 1)
i = i + 1
End If
Next
End Sub
这将遍历工作簿中的所有工作表,检查以确保它们不是您的摘要工作表,然后将其A1
值复制到 A 列中的摘要工作表中。