前提・実現したいこと
excel VBAで、指定範囲内(今回の場合はL列)から最大値を検索し、別の列(N列)に1つずつ移動させて降順に並べるプログラムを作ることを考えています。繰り返しなどの文はこれから追加していく予定なので、とりあえず1つ数値を移動させられるようにたいです。
発生している問題・エラーメッセージ
以下にコードを載せていますが、指定したセルを切り取ってN列へ移動させるところ(12行目)で以下のようなエラーが出てしまいます。
オブジェクト変数または With ブロック変数が設定されていません。
該当のソースコード
Excel
1Sub 最大値を順に移動() 2 3Dim maxLength As Long 4Dim length As Range 5 6With Application.WorksheetFunction 7 maxLength = .Max(Range("L:L")) 8End With 9 10Set length = Range(Cells(12, 2), Cells(Rows.Count, 12).End(xlUp)) 11Set length = length.Find(maxLength, LookIn:=xlValues, lookat:=xlWhole) 12length.Cut Destination:=Cells(Rows.Count, 14).End(xlUp).Offset(1, 0) 13 14End Sub
試したこと
Findを使用している11行目で、右辺の"length"を"Cells"に変えるとプログラムの実行自体はできるのですが、これだと指定範囲(L列の数値が入力されている部分)外の数値が移動される可能性もあります(実際J列に同じ数値があったとき、そちらのセルが移動されてしまいました)。
excelの画面
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/05/16 04:03 編集
2020/05/16 03:39
2020/05/16 04:13
2020/05/16 04:25
2020/05/16 04:32