エクセルの範囲指定内の最終行を探す方法
VBA初心者です。
指定範囲内のデータがある最終行を取得する方法についてご教授ください。
B7、C7、D7、に外部データが入って来ます。
そのデータを更新毎に9行目にコピーします。
8行目は行挿入する為に空けます。
セルに式を入れる方法で試みましたが、上手く出来ず不慣れなVBAで挑戦しています。
問題は蓄積データを使って平均値を採り、その傾向を知るために20ステップ前のデータと
比較したいと思っています。
平均は出来たのですが、20ステップ前のデータが出来るまで、最終行のデータを使いたいのですが方法が分かりません。
IF Then とxlrow を組み合わせる見当を付けたのですが、そこから先へ進めず困っております。
色々検索しましたが該当するケースを見つけることが出来ませんでした。
お詳しい方、ご指導の程をお願いします。
Sub test1()
Application.ScreenUpdating = False
Sheets("Sheet1").Rows("9:9").Insert Shift:=xlDown
Sheets("Sheet1").Range("b9").Resize(1, 8).Value = _
Sheets("Sheet1").Range("b7").Resize(1, 8).Value
Worksheets("Sheet1").Select
'平均 --------------------------------------
With Worksheets("sheet1")
Dim MA50 As Variant
'50平均
MA50 = WorksheetFunction.Average(Range(Cells(9, 3), Cells(58, 3)))
Cells(7, 4).Value = MA50
End With
'比較------------------------------------------
Dim a As Integer
Dim b As Integer
a = Cells(28, 4).Value
b = MA50 - a
Cells(7, 5).Value = b
End Sub
お礼
merlionXX様回答ありがとうございました。 あと出しジャンケンみたいな質問してすいません。 自分でも結合セルが引っかかると思っていなかったもので。 今度から気をつけます。 提示してもらったコードを参考にさせてもらい解決いたしました。 (B列も結合している為、最終行の取得がうまく出来なかった為、 jam-best様の式と両方を使いました。) 最終的にはこうしました。 Dim r As Long r = Cells(65536, 2).End(xlUp).Row + 2 Range("A" & r & "," & "C" & r & "," & "F" & r).ClearContents End Sub