基于列名而不是列索引从列中减去

时间:2014-10-07 17:35:32

标签: excel vba excel-vba

我有一个名为" Re-Align Midpoint"其结果是另一列的日期(命名为"最终执行日期")减去100天。现在,"重新对齐中点"日期在列AZ中,而#34;最终执行日期"在列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

1 个答案:

答案 0 :(得分:0)

只要列标题不会更改,您就可以使用hLookup执行此操作:

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

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