[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『品名で並べ替え』(K)
価格表を作っているのですが
C G H I
1 品名 旧価格 新価格 備考
こんな感じで何行もあります。
品名の頭は数字・アルファベットです。
これを数字の1〜、次にアルファベットのA〜と
並べ替えたいのですがセルを結合してたりと
上手くできません。教えてください。
セルの結合を解除した体裁でレイアウトしてから、並び替えしてください。
私は印刷用の様式以外では、デメリットが多いのでセルの結合は使いません。 データを操作する必要のあるシートで結合を使うのは、手間が増えるだけですよ。
(INA)
これはC〜F列を結合してあるんでっか? マクロを使えば簡単ですワ。と言うよりマクロを使わんかったらでけへん? まあ、何でも試してみんことにはなぁ。 データは 1○○○ B○○○ 3××× D△△△ 2××× 結合セルはC〜F列と勝手に解釈して作りましたで・・。
[Alt]+[F11]でVBEを開きます 「挿入」→「標準モジュール」で無垢の画面を表示 下のコードをコピペします [Alt]+[Q]でエクセルに戻る。 「ツール」「マクロ」「セキュリティ」を中レベルに設定
これで準備完了ですワ。 [Alt]+[F8]でsortを実行してみておくんなはれ。 並べ替えするデータの最上行(品名と書いた見出しの下の行)をクリックしてもろたら お望みの並べ替えがでけまっせぇ。 違うとったらアイムソリー。 (弥太郎) '------------------------------ Sub sort() Dim n As Long, i As Long, f As Long Dim Rng As Range, tbl As Range Dim data
Set Rng = Application.InputBox(prompt:="並べ替えする品名欄の先頭行を選択して下さい。", Type:=8) n = Rng.End(xlDown).Row
Set tbl = Rng.Resize(n - Rng.Row + 1, 7) Range(Cells(1, 250), Cells(tbl.Rows.Count, 254)).Clear f = 1 For i = 1 To tbl.Rows.Count tbl.Cells(i, 1) = StrConv(tbl.Cells(i, 1), vbNarrow) If IsNumeric(Left(tbl.Cells(i, 1), 1)) Then Cells(f, 251) = tbl.Cells(i, 1) Range(tbl.Cells(i, 5), tbl.Cells(i, 7)).Copy Destination:=Cells(f, 252) f = f + 1 End If Next i
For i = 1 To f - 1 Cells(i, 250) = Val(Cells(i, 251)) Next i
Range(Cells(1, 250), Cells(i - 1, 254)).sort key1:=Cells(1, 250), order1:=xlAscending x = f For i = 1 To tbl.Rows.Count data = StrConv(tbl.Cells(i, 1), vbNarrow) If Not IsNumeric(Left(data, 1)) Then Cells(f, 251) = tbl.Cells(i, 1) Range(tbl.Cells(i, 5), tbl.Cells(i, 7)).Copy Destination:=Cells(f, 252) f = f + 1 End If
Next i
Range(Cells(x, 251), Cells(tbl.Rows.Count, 254)).sort key1:=Cells(x, 251), order1:=xlAscending
For i = 1 To tbl.Rows.Count tbl.Cells(i, 1) = Cells(i, 251) Next i
Range(Cells(1, 252), Cells(tbl.Rows.Count, 254)).Copy Destination:=tbl.Cells(1, 5) Range(Cells(1, 250), Cells(tbl.Rows.Count, 254)).Clear Set Rng = Nothing
End Sub
実行してみたのですが、上手くいかず・・・
マクロは超初心者なので、何処が悪いのかもわかりません。
結局セルの結合を解除して並べ替えすることにしました。 (K)
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.