人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile


エクセルの表をマクロで並び替えたいです。
別シート(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行ほどあります。
・空のセルの場合は詰めたいです。

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

●質問者: martytaka
●カテゴリ:コンピュータ
○ 状態 :終了
└ 回答数 : 1/1件

▽最新の回答へ

1 ● 7knights
●100ポイント ベストアンサー

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


martytakaさんのコメント
ありがとうございます! 助かりました!
関連質問

●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ