エクセルの表をマクロで並び替えたいです。
別シート(Sheet2)を見ると自動的に並び変わっているというようにしたいです。

A B C
a 3 5
b 2 1
c 6
d 2 6
e 5 4

上記を
A B
a 3
b 2
c 6
d 2
e 5
a 5
b 1
d 6
e 4

のようにしたいです。
その他の仕様・要望等は下記の通りです。

・列は横に最大で20列あります。
・縦3000行ほどあります。
・空のセルの場合は詰めたいです。

何卒よろしくお願いいたします。

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2017/11/10 19:10:23
  • 終了:2017/11/13 10:33:11

ベストアンサー

id:yitengzongxian No.1

7knights回答回数5ベストアンサー獲得回数22017/11/11 08:05:13

ポイント100pt

Sheet1のデータをSheet2に書き出すものとすると,Sheet2のコードにこんな感じで書けばいいと思います(少し幼稚なコードかもしれないけど)。
Private Sub Worksheet_Activate()
Set SB = ThisWorkbook.Sheets("Sheet1")
Set SS = ThisWorkbook.Sheets("Sheet2")
SS.Cells.ClearContents
For j = 2 To 20
For i = 1 To SB.Cells(1, 1).End(xlDown).Row
Select Case IsEmpty(SB.Cells(i, j))
Case True
Case False
Select Case IsEmpty(SS.Cells(1, 1))
Case True
CL = 1
Case False
Select Case IsEmpty(SS.Cells(2, 1))
Case True
CL = 2
Case False
CL = SS.Cells(1, 1).End(xlDown).Row + 1
End Select
End Select
SS.Cells(CL, 1) = SB.Cells(i, 1)
SS.Cells(CL, 2) = SB.Cells(i, j)
End Select
Next i
Next j
End Sub

id:martytaka

ありがとうございます!
助かりました!

2017/11/13 10:33:01

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません