A列のデータをA列に並べかえたいということですよね?
変更したい行を入力すると、並べかえるマクロにしてみました。
(存在しない行を入力するとエラーになります:←入力のチェックをしていません)
IV行(256行)を作業列として使用していますので、この行はデータに使用できません。
セルの値が、数値以外及び1~65536外の場合は無視します。(結果的に消去される)
Sub test()
Dim a, rw, col, cwork
cwork = 256 '←作業用列(=IV):データをいれないでください
mes = "対象とする列を入力してください(例:B)"
col = Range(Application.InputBox(prompt:=mes, Type:=2) & "1").Column
Columns(cwork).ClearContents
For rw = 1 To Cells(65536, col).End(xlUp).Row
a = Cells(rw, col).Value
If IsNumeric(a) Then
If (Val(a) > 0) And (Val(a) <= 65536) Then Cells(Val(a), cwork) = a
End If
Next rw
Columns(cwork).Copy
Columns(col).PasteSpecial (xlPasteValues)
Columns(cwork).ClearContents
Cells(1, col).Select
End Sub
補足
早々にお返事いただきありがとうございます。 さっそく試しているところなのですが、正)の =..........!$A$1:$J$6,2,FALSE) にある $J$6の6とは何を指しているのでしょうか。 データ量が大きいので、小さく削って予備的に試してみたいのですが、 この6の意味がわからなくて。。。 初心者の質問で申し訳ありませんが、補足を頂けますと助かります。 よろしくお願いいたします。