Excel VBA索引匹配dynamic范围

更新:斜体的所有措辞已经改变,因为我不觉得我的问题得到了答复。

不幸的是,所有其他类似命名的问题比我认为的要详细得多。 因此,我所有的谷歌search已经取得了零果实,我回来问你优秀的WIZARDS。

基本上我想索引匹配一个dynamic范围。 input数据是基于查询哪一周的数据而变化的,但好处是工作表总是与相同, 但是列长度是可变的 。 通常我会在这里使用LastRow函数,但这是不可能的,因为它使用公式的参考单元格。 对于你们中的一些人来说,这可能会非常简单。 见下文:

ActiveCell.FormulaR1C1 = _ "=INDEX('Consolidation Sheet'!R8C2:R6477C2,MATCH('Workbook 1'!RC[-1],'Consolidation Sheet'!R8C6:R6477C6,0))" LastRow = Cells(Rows.Count, "E").End(xlUp).Row Range("F4").AutoFill Destination:=Range("F4:F" & LastRow), Type:=xlFillDefault 'fill F column 

作为参考,“合并表”栏是列B 或参考代码中的“2” 。 我所要求的索引匹配要做的是find员工根据他们的员工数量转移,但是信息的日常input是可变的,因为它是超时数据,所以我需要列长度是dynamic的。 任何援助将是有益的。

不确定您需要使用索引/匹配进行计算,但以下显示了进行dynamic索引/匹配查找的阶段。 这假设数据是由员工sorting的

 ColumnA - EmployeeName ColumnB - EmployeeHours ColumnC - StartRowOfEmployee =MATCH(A3,A:A,0) ColumnD - EndRowOfEmployee =C3+COUNTIF(A:A,A3)-1 ColumnE - SumOfEmployeeHours =SUM(INDEX(B:B,C3,0):INDEX(B:B,D3,0)) 

这将是快速和不稳定的。 本质上,dynamic元素是通过将INDEX链接到SUM(Rng1:Rng2)中构build的,其中Rng1和Rng2是数据的dynamic开始和结束行。

在这里输入图像说明