2014-10-07 46 views
0

我有一个名为“重新对齐中点”的列,其结果是另一列(名为“最终执行日期”)的日期减去100天。现在,“重新对齐中点”日期在列AZ中,而“最终执行日期”在列BR中。这些列可能会被移动,所以根据列索引构建宏是不切实际的。我想要做的是从列名减去另一个。标题行是第2行,而不是第1行根据列名而不是列索引从列中减去

这是我为我录制的宏:

Sub Re_Align_Midpoint_Date 

    Range("AZ3").Select 
    ActiveCell.FormulaR1C1 = "=RC[18] - 100" 
    Range("AZ3").Select 
    Selection.AutoFill Destination:=Range("AZ3:AZ142"), Type:=xlFillDefault 
    Range("AZ3:AZ142").Select 
    ActiveWindow.SmallScroll Down:=-132 
    Selection.Copy 
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ 
     :=False, Transpose:=False 
    Application.CutCopyMode = False 
End Sub 

回答

0

只要列标题不会改变,你可以使用HLOOKUP做到这一点:

=HLOOKUP("Final Execution Date",$A$2:$ZZ3,ROW(A2),FALSE)-100 

只需将此公式粘贴到“中点”列的顶部并填写即可。