VBA noob的位,所以請不要過多地關注我的代碼。我有一個數據行總是變化的文檔,我寫了一個小函數來清除之前的條目,然後完成宏的其餘部分。我的目標是清除列H中的所有條目。我不想清除整個列,只是第6行和下面。這工作得很好:Excel VBA - 查找數據的相對範圍
Range("H6", Range("H1048576").End(xlUp).Offset(1, 0)).Select
Selection.ClearContents
我再要進入我的公式,我放在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
以上所有工作正常。但是,我的問題是,如果我插入一個列前面這個打破由於絕對的引用。在工地附近搜索這裏給我,我可以找到第5行我標題的值如下:
Dim MyRng As Range
Set MyRng = Range("5:5").Find("Column Title", LookIn:=xlValues, LookAt:=xlWhole)
但隨後我就如何與MyRng值做我的代碼的其餘損失。我在猜測我的後退方式,轉到表單底部,跳到最後一個值,發現數據範圍是問題。
所以一旦找到第5行標題的列,我該如何設置我的範圍是數據下的所有單元格?
感謝您的幫助!
你不想找到/設置範圍。只需找到列號,然後使用'cells'而不是'range'。 – findwindow