Excel VBA:匹配索引函数
我不能给你我使用的Excel文件,因为它有很多机密信息,但我会尽力以最好的方式总结这个问题 我有一个文件a,里面有一个公司的员工名单,他们的开始日期,成本中心。。。该文件每天都会发送,其中包含我需要的更多信息 我有一个文件B,我们用它来处理它,并记录所有更改(如开始日期)和所有完成的操作 我设法得到一个代码,该代码正在使用新名称更新文件,而不删除其余部分。我现在正在寻找一种解决方案,它可以帮助我找出开始日期是否更改,新的开始日期是什么,并在开始日期更改的文件中创建注释 一个简单的Vlookup不会削减它,因为开始日期早于名称。所以我编写了match&index函数,最后用这个怪物公式作为注释。。。我知道这不太好,尤其是因为我不知道如何让那部分([ABC.xls]Report'!R360C1:R440C10)实际引用我之前定义的范围,但它现在可以完成这项工作 但是现在,我完全不知道如何在工作文件中获得新的开始日期。你能给我你的意见吗 这是我做的代码的一部分Excel VBA:匹配索引函数,excel,vba,Excel,Vba,我不能给你我使用的Excel文件,因为它有很多机密信息,但我会尽力以最好的方式总结这个问题 我有一个文件a,里面有一个公司的员工名单,他们的开始日期,成本中心。。。该文件每天都会发送,其中包含我需要的更多信息 我有一个文件B,我们用它来处理它,并记录所有更改(如开始日期)和所有完成的操作 我设法得到一个代码,该代码正在使用新名称更新文件,而不删除其余部分。我现在正在寻找一种解决方案,它可以帮助我找出开始日期是否更改,新的开始日期是什么,并在开始日期更改的文件中创建注释 一个简单的Vlookup不
nR2 = Firstemptyrow()
Range("Y2").Select
ActiveCell.FormulaR1C1 = _
"=IF(INDEX('[ABC.xls]Report'!R360C1:R440C10,MATCH(RC[-23],'[ABC.xls]Report'!R360C2:R440C2,0),1)<>RC[-24],CONCAT(""WARNING, new start date is"", TEXT(INDEX('[ABC.xls]Report'!R360C1:R440C10,MATCH(RC[-23],'[ABC.xls]Report'!R360C2:R440C2,0),1),""jj/mm/a" & _
"a""), "". Was changed from "", TEXT(RC[-24],""jj/mm/aa""),"" on "", TEXT(TODAY(),""jj/mm/aa"")),"""")" & _
""
Selection.AutoFill Destination:=Range(Cells(2, 25), Cells(nR2 - 1, 25)), Type:=xlFillDefault
Range("Y:Y").Select
Selection.Copy
Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
:=False, Transpose:=False
nR2=Firstemptyrow()
范围(“Y2”)。选择
ActiveCell.FormulaR1C1=_
“=如果(索引(“[ABC.xls]报告”!R360C1:R440C10,匹配(RC[-23],“[ABC.xls]报告”!R360C2:R440C2,0),1)RC[-24],CONCAT(“[ABC.xls]报告”!R360C1:R440C10,匹配(RC[-23],“[ABC.xls]报告”!R360C2:R440C2,0),1),“jj/mm/a”和_
"a","已由"文本(RC[-24),"jj/mm/aa","on","文本(今日),"jj/mm/aa","及_
""
Selection.AutoFill Destination:=范围(单元格(2,25),单元格(nR2-1,25)),类型:=xlFillDefault
范围(“Y:Y”)。选择
选择,复制
Selection.Paste特殊粘贴:=xlPasteValues,操作:=xlNone,SkipBlank_
:=假,转置:=假
循环通过Y列,如果”
,则使工作簿B中的日期等于工作簿ABC中的日期。循环通过Y列,如果”
,则使工作簿B中的日期等于工作簿ABC中的日期。