[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『セルの移動と行の削除』(ぜりー)
A列の文字列が入ってる場合、そのセルを1つ上のセルに移動させたいです
A列
1行目
2行目 ヘルプ
3行目
4行目 テスト
5行目
こうなっていた場合にA列2行目のヘルプをA列1行目に、A列4行目のテストを3行目に移動させて、そのあとに2行目と4行目を削除したいです。
5行目以降もあるので可能ならVBAで実施したいと思っております。
ご教授のほど、よろしくお願いします。
< 使用 Excel:Excel2013、使用 OS:Windows7 >
Sub test() Dim i As Long
For i = Cells(Rows.Count, "A").End(xlUp).Row To 1 Step -1 If Cells(i, "A").Value = "" Then Cells(i, "A").Value = Cells(i + 1, "A").Value Rows(i + 1).Delete End If Next i End Sub (???) 2016/08/25(木) 11:44
A列 B列 C列 D列 … AZ列
1行目 あいうえお 2 アイウ
2行目 ヘルプ かきくけこ 3 カキク
3行目 さしすせそ 4 サシス
4行目 テスト たちつてと 5 タチツ
5行目
こうなっていた場合にA列2行目のヘルプをA列1行目に、A列4行目のテストを3行目に移動させて、そのあとに2行目と4行目を削除したいです。
列はAZくらいまで使用していて、2行目や4行目にも文字がはいってたり空白だったりしますが、気にせずに削除を実施したいと考えております。
(ぜりー) 2016/08/25(木) 13:46
こんなことですか?
Sub Sample() Dim w As Variant Dim x As Long
w = Range("A1", Range("A" & Rows.Count).End(xlUp)).Value
For x = 2 To UBound(w, 1) If w(x, 1) <> "" Then w(x - 1, 1) = w(x, 1) w(x, 1) = Empty End If Next
Range("A1").Resize(UBound(w, 1)).Value = w On Error Resume Next Columns("A").SpecialCells(xlCellTypeBlanks).EntireRow.Delete On Error GoTo 0
End Sub (β) 2016/08/25(木) 13:56
オートフィルタの話は、コードを書かずに実現する方法であり、B列以降は2行目のデータが残るから、そうじゃないんですよね?、という意味で書きました。 処理後の例も書いていただけると、誤解が無かったと思います。
(???) 2016/08/25(木) 15:09
今後は、処理後の例も載せてみるようにします。
言葉足らずでも、回答してくださったお二人に感謝してます。
ありがとうございます
(ぜりー) 2016/08/25(木) 17:08
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.