我有一个包含许多工作表的 Excel 工作簿(目前大约有 30 个工作表,并且每天都在增加)。每个工作表均以其包含的数据的日期命名(例如,02-10、02-11等)。每个工作表的单元格 A2 中都有一个数字,我想编写一个公式来查看每个工作表中的单元格 A2,并返回最大的数字。
我创建了当前工作表的列表并将其命名为DayWorksheets,并尝试使用公式获取值
{=MAX(INDEX(INDIRECT("'"&DayWorksheets&"'!A2"),0))}(显示的括号表示数组公式)。
但每次的结果都是“10”,这是指定范围内第一个工作表的单元格 A2 中的数字(而且它不是最大的)。我在这里做错了什么?我见过一些其他的公式,比如
=VLOOKUP(C1,INDIRECT("Sheet"&MATCH(TRUE,COUNTIF(INDIRECT("Sheet"&ROW(INDIRECT("1:10"))&"!A2:A100"),B1)>0,0)&"!A2:B100"),2,0),
但我不太明白countif那里的功能的目的。任何帮助,将不胜感激。
我正在尝试编写一个VBA函数,该函数根据对象属性之一的值计算集合中的对象.我需要将被检查的对象属性设置为动态的,由函数参数提供.我可以使用一个if then语句,但是这将有许多elseif条款,每个条款都有相同的过程,除了属性名称.
我想避免为每个属性名称反复重复我的代码.这是我到目前为止所拥有的.
Private Function getTicketCount(c As Collection, f As String, s As String) _
As Long
' @param c: collection of Ticket objects.
' @param f: property to filter.
' @param s: filter string.
'
' Function returns number of tickets that pass the filter.
Dim x As Long
Dim t As Ticket
x = 0
For Each t In c
If t.f = s Then x = x + 1 ' Compiler throws "Method …Run Code Online (Sandbox Code Playgroud)