advanced help
per page, with , order by , clip by
Results of 1 - 1 of about 2688 for 並べ替え (0.002 sec.)
[[20200401111454]]
#score: 4562
@digest: 9863d427e28cd18978f709e3164716ab
@id: 82871
@mdate: 2020-04-01T08:22:58Z
@size: 6276
@type: text/plain
#keywords: 外→ (17448), rngfind (12307), 外空 (11037), koooo (7927), う") (4337), あ", (4058), insert (2937), vbexclamation (2708), 行, (2670), 行挿 (2453), myr (2418), い", (2139), 順番 (2138), び替 (2061), iserror (1806), 並び (1707), 以外 (1704), ピン (1668), 行番 (1571), entirerow (1558), variant (1500), columns (1474), れ以 (1433), 行全 (1390), (ko (1377), の行 (1334), 水) (1330), 替え (1251), 2020 (1135), rows (996), application (934), 番を (814)
『行の順番を入れ替える方法』(koooo)
マクロで行の順番を入れ替える方法を教えてくれませんか 条件にあった行が何行目かはすでにa、b、cと求めています 条件あ=a,条件い=b,条件う=c 条件あ、い、うの順に上から並べます 順番を入れ替えるにはコピー、削除を繰り返すのでしょうか? Dim a As Long Dim b As Long Dim c As Long a= b= c= wk.Rows(c).Insert < 使用 Excel:Excel2019、使用 OS:Windows10 > ---- どんな値を、どんなルールで並び替えるのか、具体的な数値と、並び替え後のイメージを教えてください。 並び替え方法はいろいろあり、ダミーの変数を1つ用意するとか、外部オブジェクトを利用するとか、そのまま貼った後にExcelの並び替え機能を使うようコーディングするとか…。 (???) 2020/04/01(水) 12:01 ---- A列にあ,うい,うとそれ以外の値があります これをA列の最後の行の下に上から順番にあの行,いの行,うの行と並べ、 あの行の上に1行挿入したいです あの行番号はa,いの行番号はb,うの行番号はcです 例えば あ → あ ←最後の行の下に順番に並べる う → い い → う Dim a As Long Dim b As Long Dim c As Long a=Application.Match("あ", Columns("A"), 0) b=Application.Match("い", Columns("A"), 0) c=Application.Match("う", Columns("A"), 0) wk.Rows(a).Insert (koooo) 2020/04/01(水) 13:03 ---- うーん、その例だと、やっぱり何をしたいのか判らないです。 a,b,cが、それぞれの文字列に一致する行というのは判りましたが、「あ」の行の上に1行挿入するだけだと、b,c は不要ですよね? それに、何も並び替えていないし。 一番下に「あ、い、う」の順で行コピーし追加するにしても、a,b,cの順番で処理するだけであり、何も並び替える必要は無いし…。 「あ」の上に行挿入なのか、行末尾に何か追加するのか、どっちなのでしょう? 元データと、実行後のデータの例を挙げてみてください。 そして、並び替えるのが行番号のような数値なのか、それとも検索対象の文字列なのか、それが判らないと、どういう方法で実現するのがベストなのか判らないです。 (???) 2020/04/01(水) 13:16 ---- > あ → あ ←最後の行の下に順番に並べる こんな事? Sub Test() Dim myR As Variant, a As Variant For Each a In Array("あ", "い", "う") myR = Application.Match(a, Columns(1), 0) If IsError(myR) Then MsgBox a & " が見つかりません", vbExclamation Exit Sub Else Cells(myR, 1).EntireRow.Delete Cells(Rows.Count, "A").End(xlUp).Offset(1).Value = a End If Next End Sub (ピンク) 2020/04/01(水) 13:42 ---- 行毎に移動ですね Sub Test() Dim myR As Variant, a As Variant For Each a In Array("あ", "い", "う") myR = Application.Match(a, Columns(1), 0) If IsError(myR) Then MsgBox a & " が見つかりません", vbExclamation Exit Sub Else Cells(myR, 1).EntireRow.Cut Cells(Rows.Count, "A").End(xlUp).Offset(1) Cells(myR, 1).EntireRow.Delete End If Next End Sub (ピンク) 2020/04/01(水) 13:48 ---- Sub test() Const sKey As String = "あ,い,う" Dim v As Variant Dim rngFind As Range For Each v In Split(sKey, ",") Set rngFind = Range("A:A").Find(v) If rngFind Is Nothing Then Exit Sub rngFind.Cut Cells(Rows.Count, "A").End(xlUp).Offset(1).Insert Next End Sub こんなかんじですかね。 検索機能(Findメソッド)で探した方が、セルその物が返ってくるので、 行番号の操作をするより便利かと思いました。 (まっつわん) 2020/04/01(水) 13:58 ---- ぶつかってしまいましたがそのまま投稿します 並べ替える方法は分からず困ってます できているとこまでを一応お知らせしました。 wk.Rows(a).Insertは並び替えた後です ↑ A列の最後の行の下に上から順番にあの行,いの行,うの行と並べ、 あの行の上に1行挿入したいです あの行、いの行、うの行、それ以外を分けるためです それ以外 空白 あ い う 並べ替えるのは行全体です 手動では 対象の行を選択→切り取り→最後の行の下に貼りつけ となります 例えば それ以外 → それ以外 い → それ以外 それ以外 → それ以外 それ以外 → それ以外 う → それ以外 それ以外 空白 あ → あ それ以外 → い → う (koooo) 2020/04/01(水) 13:59 ---- >wk.Rows(a).Insertは並び替えた後です Sub Test2() Dim myR As Variant, a As Variant For Each a In Array("あ", "い", "う") myR = Application.Match(a, Columns(1), 0) If IsError(myR) Then MsgBox a & " が見つかりません", vbExclamation Exit Sub Else Cells(myR, 1).EntireRow.Cut Cells(Rows.Count, "A").End(xlUp).Offset(1).Insert End If Next End Sub (ピンク) 2020/04/01(水) 15:16 ---- ピンクさん 並び替えた後にInsertされなかったです 自力では修正できませんでした 教えてくれませんか? まっつわんさん Findで見つかったセルだけ並び替えられました 行全体を並び替えるにはどうなるのでしょうか? (koooo) 2020/04/01(水) 16:34 ---- なるほど、一致した行を最下行に移動させたかったのですね。 あまり並び替えは関係なかった、と。 私だったら、移動ではなく、まずは見つかった順にコピーしていき、全部コピーし終わってから、下の行から元を削除しますね。(消す順番を得るために並び替えしています) Sub test() Dim vw As Variant Dim AR As Object Dim iR As Long Dim i As Long Set AR = CreateObject("System.Collections.ArrayList") iR = Cells(Rows.Count, "A").End(xlUp).Row + 2 For i = 0 To 2 vw = Application.Match(Array("あ", "い", "う")(i), Columns(1), 0) If IsError(vw) = False Then Rows(vw).Copy Cells(iR, "A") AR.Add vw iR = iR + 1 End If Next i AR.Sort For i = AR.Count - 1 To 0 Step -1 Rows(AR(i)).Delete Next i End Sub (???) 2020/04/01(水) 17:08 ---- 切り取り&挿入なら、行数は変わらない事をいうのを利用すると、以下でも良いですね。 Sub test2() Dim vw As Variant Dim iR As Long Dim i As Long iR = Cells(Rows.Count, "A").End(xlUp).Row + 2 For i = 0 To 2 vw = Application.Match(Array("あ", "い", "う")(i), Columns(1), 0) If IsError(vw) = False Then Rows(vw).Cut Rows(iR).Insert End If Next i End Sub (???) 2020/04/01(水) 17:22 ...
http://www.excel.studio-kazu.jp/wiki/kazuwiki/202004/20200401111454.txt - [detail] - similar
PREV NEXT
Powered by Hyper Estraier 1.4.13, with 97021 documents and 608149 words.

訪問者:カウンタValid HTML 4.01 Transitional