小编Jac*_*lda的帖子

Sum()跨动态页数

各位大家好,感谢你提前帮忙,

我有一张excel表,仅用于获取多张纸的总和.最好也是最简单的说,公式是这样的=sum(Sheet1!A1,Sheet2!A1,Sheet3!A1,Sheet4!A1).但有一些问题使问题复杂化.首先,我不知道要总和的床单的数量或顺序,也不知道他们的名字.这个公式将被复制到~150个其他单元格中,因此我需要动态求和,而不是每次都将表格物理地添加到~150个单元格.(此外,工作表的配置和命名也不允许轻松拖动公式.)

首先,我想我可以用indirect()引用来编写它.我做了一个列来列出将添加到每个单元格中的所有工作表名称.不幸的是,concatenate()不能在数组上使用,所以我不得不求助于下面的UDF:

Function CONCAT(Delimiter As Variant, ParamArray CellRanges() As Variant) As String
Dim Cell As Range, Area As Variant
If IsMissing(Delimiter) Then Delimiter = ""
For Each Area In CellRanges
If TypeName(Area) = "Range" Then
For Each Cell In Area
If Len(Cell.Value) Then CONCAT = CONCAT & Delimiter & Cell.Value
Next
Else
CONCAT = CONCAT & Delimiter & Area
End If
Next
CONCAT = Mid(CONCAT, Len(Delimiter) + 1)
End Function
Run Code Online (Sandbox Code Playgroud)

使用UDF,我可以使用正确的语法获得一个大字符串,例如=CONCAT("'!A"&(B1+1)&",'",Array_of_Sheets)&"'!A"&(B1+1).在 …

excel vba excel-vba excel-formula excel-2010

3
推荐指数
1
解决办法
5522
查看次数

标签 统计

excel ×1

excel-2010 ×1

excel-formula ×1

excel-vba ×1

vba ×1