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

Vba 基于列名而不是列索引从列中减去,vba,excel,Vba,Excel,我有一个名为Re Align Middpoint的列,其结果是另一个名为Final Execution date的列的日期减去100天。现在,重新对齐中点日期在AZ列,而最终执行日期在BR列。这些列可能会被移动,因此基于列索引构建宏对我来说是不切实际的。我想做的是根据列名从另一个中减去一个。标题行位于第2行,而不是第1行 这是我录制的宏的内容: Sub Re_Align_Midpoint_Date Range("AZ3").Select ActiveCell.FormulaR1

我有一个名为Re Align Middpoint的列,其结果是另一个名为Final Execution date的列的日期减去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

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

=HLOOKUP("Final Execution Date",$A$2:$ZZ3,ROW(A2),FALSE)-100
只需将此公式粘贴在中点列的顶部并填充即可