久しぶりの投稿です・・・
久しぶりの投稿です・・・
マクロをやり始めたときに真っ先に覚えたコードスニペットがあります。
辞書に「えんど」とやると下記のコードに変換するように登録しました。
eRow=cells(rows.count,1).end(xlup).row
シートに表形式でデータがある場合に最下行を調べるコードなんですが
このコードにはクセがあることが最近分かりました・・・
・セルに計算式が挿入されていて式の条件式で結果がブランク設定してあったら
見た目はブランクでもそこが最下行になってしまいます。
・またマクロの中でブランクを挿入しても同じ結果になってしまいます。
例えば cells(15,1).value = "a" を実行後に、続けてcells(15,1).value = "" を実行したとします。
eRow=cells(rows.count,1).end(xlup).row
を実行するとeRowの値は15になります。
これを防ぐにはcells(15,1).clearcontents が必要でした!
Sub Test_Code1()
Dim eRow As LongCells(15, 1) = "a"
eRow = Cells(Rows.Count, 1).End(xlUp).Row
Debug.Print eRow
Cells(15.1) = ""
eRow = Cells(Rows.Count, 1).End(xlUp).Row
Debug.Print eRow
Cells(15, 1).ClearContents
eRow = Cells(Rows.Count, 1).End(xlUp).Row
Debug.Print eRow
End Sub