VBA:匹配索引功能

时间:2019-12-05 10:21:26

标签: excel vba

我不能给我我使用的Excel文件,因为它包含很多机密信息,但是我将尽力总结问题。

我有一个文件A,其中包含要在公司中开始工作的人员的列表,他们的开始日期,成本中心...该文件每天发送一次,并且有我需要的更多信息

我有一个文件B,我们可以用它来处理它,并记录所有更改(例如开始日期)和完成的所有操作。

我设法获得了一个代码,该代码可以使用新名称更新文件,而不删除其余文件。我现在正在寻找一种解决方案,该解决方案将帮助我找出开始日期是否更改,新的开始日期是什么,并在开始日期更改的文件中创建注释。

一个简单的Vlookup不会删除它,因为开始日期早于名称。因此,我组合了match&index函数,并以这个怪异的公式作注释...我知道它并不好,尤其是因为我不知道如何获得该部分([ABC.xls] Report'! R360C1:R440C10)实际上是指我之前定义的范围,但目前为止确实可以。

但是现在,我完全不知道如何在工作文件中获取新的开始日期。能给我您的意见吗?

这是我所做的代码的一部分。

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

0 个答案:

没有答案