【VBA】データ最終行をFor eachループで取得するマクロ
データ最終行を取得するVBAコードは、
Cells(Rows.Count, 1).End(xlUp).Row
が定番ですが、任意の範囲内なら、For each nextを使って最終行を取得した方が手軽にできそうな気がしてコードを書いてみました。
【使い道】
出席簿備考欄の記述で、「新型コロナウイルス感染拡大予防に伴う処置」など、長文を2行に分割するために、E列選択セル以下のデータを1行下にずらし値をコピーします。その後、1行目は左半分、2行目には右半分の文字を取り出し表示します。最後に書式をコピーします。
-----------------------------------------
【コード】
Sub 範囲を1行下にコピーして言葉を2分割する()
Dim ac As Range
For Each Rng In Range("E2:E41")
Set ac = ActiveCell
If Rng <> "" Then
Set a = Range(Cells(ac.Row, "A"), Cells(Rng.Row, "H")) 'アクティブセル~データ最終行までの範囲を取得
End If
Next
a.Copy a.Offset(1, 0)
'文字を2分割表示する'切り上げ整数化
le = WorksheetFunction.RoundUp*1.Copy
Range(Cells(ac.Row + 1, "A"), Cells(41, "H")).PasteSpecial (xlPasteFormats)
Application.CutCopyMode = False
ac.Select
End Sub
-----------------------------------
備忘録、備忘録
では、また(^^)/