Excel VBA – 查找数据的相对范围

VBA noob位,所以请不要太多在我的代码。 我有一个数据行总是变化的文档,我写了一个小函数来清除之前的条目,然后完成其余的macros。 我的目标是清除列H中的所有条目。我不想清除整个列,只是第6行和下面。 这工作正常:

Range("H6", Range("H1048576").End(xlUp).Offset(1, 0)).Select Selection.ClearContents 

然后我想input我的公式,我在H6中的每一行都有数据放在A列中的同一行。我也粘贴了公式的值。 我这样做如下:

  If Range("A7").Value <> "" Then Range("H6").Select Selection.AutoFill Destination:=Range("H6:H" & Range("A" & Rows.Count).End(xlUp).Row) Range("H6", Range("H1048576").End(xlUp)).Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End If 

以上所有的工作正常。 但是,我的问题是,如果我插入一个列向前打破,由于绝对的引用。 在这里search网站显示我可以在第5行find我的标题的价值如下:

 Dim MyRng As Range Set MyRng = Range("5:5").Find("Column Title", LookIn:=xlValues, LookAt:=xlWhole) 

但是,我对如何用MyRng值执行剩余的代码感到茫然。 我猜我回到工作表的底部,并跳到最后一个值,以find数据范围是问题。

所以一旦find第5行标题的列,我怎样才能将范围设置为数据下的所有单元?

谢谢您的帮助!

像这样的东西:

 Dim MyRng As Range Dim lastRow As Long With ActiveSheet lastRow = .Cells(.Rows.count, "A").End(xlUp).Row Set MyRng = .Range("5:5").Find("Column Title", LookIn:=xlValues, LookAt:=xlWhole) c = MyRng.Column Debug.Print c If .Range("A7").Value <> "" Then .Range("H6").Select Selection.AutoFill Destination:=.Range(.Cells(6, c), .Cells(lastRow, c)) .Range("H6", .Range("H1048576").End(xlUp)).Select Selection.Copy Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _ :=False, Transpose:=False End If End With