コードは、ヘッダー行と正しい列を検索します。同じ列のヘッダー行の下の1つのセルを開始し、同じ列の最後の行までの範囲で、いくつかのコードを実行したいと思います。範囲を作成するのにoffset
を使用しようとしましたが、毎回offset
が失敗します。 offset
はこの方法で使用できませんか?Excel VBA:この単純なオフセットでは何が欠けていますか?
Sub Del_Y_Rows()
Dim Rng, fcell, LastRow, SrchRng, sRNG, eRNG As Range
Dim Findstring As String
Findstring = "Header"
With Sheets("thisSheet")
Set SrchRng = .Range("a1:l15")
Set fcell = SrchRng.Find(What:=Findstring, _
LookAt:=xlWhole, _
LookIn:=xlValues, _
SearchOrder:=xlByRows, _
MatchCase:=False)
LastRow = .Cells(Rows.Count, fcell.Column - 2).End(xlUp).Row
Debug.Print "fcell " & fcell.Address
sRNG = .Range(fcell).Offset(1, 0) 'this fails 'sRng = start of the range
Debug.Print "srng " & sRNG
eRng = .cells(LastRow, fcell.Column) 'eRng = end of the range
Rng = .Range(sRNG, eRng)
Debug.Print "rng is " & Rng.Address
End With
End Sub
テスト。 BTWでは、 'eRNG'だけが' Range'です。残りの部分は 'Variant'として暗黙的に宣言されています – Comintern